设为首页收藏本站官方微博

飘云阁(PYG官方论坛)

 找回密码
 加入论坛

QQ登录

只需一步,快速开始

扫一扫,访问微社区

[x86]PYG官方Dll优雅破解补丁制作工具[x64]PYG官方DLL优雅破解补丁制作工具[x86]PYG官方Exe优雅破解补丁制作工具飘云阁工具包(已更新第4季)PYG十周年第十一期软件安全教学视频
查看: 1397|回复: 27

[C/C++] 庆飘云阁13周年_分享个人特征码搜索匹配思路跟源码_还有近期学C练手写的函数源码!

    [复制链接]
  • TA的每日心情
    无聊
    2017-11-12 08:45
  • 签到天数: 64 天

    [LV.6]常住居民II

    发表于 2017-11-29 15:57:22 | 显示全部楼层 |阅读模式
    本帖最后由 huangyushun 于 2017-11-29 20:23 编辑

    关于特征码搜索:
    网上搜索看了看一些前辈留下的思路跟算法:
    大概就看懂了两种思路:
    1、暴力搜索,最原始而简单的方式,逐字节对比_不匹配逐字节递加向下
    2、优化搜索,制作一张对比字符表(需要有重复字符)_一样逐字节对比,
         出现不匹配根据字符表里的重复字符,进行尽量多的跳过字节(尽可能防止重复对比字节)
    ----------------------------------------------------------------------------------------------------------------------
    个人特征码搜索的思路是:
    在字符或者是内存特征码对比中,
    文本字符什么的,就一眼带过吧,用汇编字节来当例子说
    汇编:
    004177CD:    894424 08       mov dword ptr ss:[esp+0x8],eax
    004177D1 :  8B4C24 1C       mov ecx,dword ptr ss:[esp+0x1C]
    例如两句,如果搜索,我们正常对比,
    就容易重复对第一句
    89 44 24 08
    这四个字节码,在程序中出现很多很多很多,我们对比就容易浪费时间在这个上面对比
    我的想法是,尽可能的不去对比这些重复的邻居字符,那么我们先对比
    第一个字节跟最后一个字节,这样出现的几率就少了很多,免去前面几个重复字节码的浪费对比时间
    那么按照这个思路_是不是一直首尾对比字节就好呢?
    不是的,这些字节码有邻居亲戚关系的,
    相互在一起的字节码一般都是某句汇编,所以字节码也是固定那几个字节,
    (文本而言,就是成语跟词语还有一些行为词语,也是相互关联的,亲戚关系)
    理论上,首尾匹配之后,从中间网两边比较容易过滤到不匹配的雷同字节,
    但是似乎写代码又问题复杂化了(编程能力弱_最近刚学的C++)
    于是乎,我用了单双数对比的方法,先对比双数再对比单数,从未尽量避免去重复对比关联的字节,浪费时间
    匹配思想.jpg
    中心思想:
    首尾定位先对比,
    然后中间分段对比_
    可以根据子字符串的长度来选择分成多少段对比
    我目前写的是2段,单双数_可以自己根据实际需求应用于其它领域
    --------------------------------------------------------------------------------------------------------------------------------------------
    大概总结:
    而网上制作字符表来跳过字节的方式,可以归纳为:
    在事情发生之后,尽量去避免他的重复发生,
    ----------------------------------------------------------------------
    我的想法是预测事情可能发生的几率,去做准备避免他们发生
    ----------------------------------------------------------------------
    那么根据理论,两种想法并不冲突可以相辅相成来用,实现效率最大化
    但是编程怎么实现,心好累,能力不足,写不来了,累了
    ----------------------------------------------------------------------
    主要的目的就是分享思路_希望能抛砖引玉
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    模糊匹配:??
    以前都是在对比过程逐个字符转为字节数值来对比,浪费大把时间来转化,重复转化再重复继续重复
    ----------------------------------------------------------------------
    int *查询字节集 = new int[查询字节集长度];
    我用了整数数组来接受,如果是??就写入-1,其它的正常写入,
    对比的时候,如果是-1就跳过,其它就正常的对比,
    ----------------------------------------------------------------------

    模糊匹配.jpg

    --------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------
    --------------------------------------------------------------------------------------------------------------------------------------------
    特征码搜索匹配到此结束:开始分享自己学C的一些练手函数:
    --------------------------------------------------------------------------------------------------------------------------------------------
    个人学C练手写的函数_大概截图:附件有源码文件
    --------------------------------------------------------------------------------------------------------------------------------------------
    001.jpg 002.jpg

    ---------------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------
    最后给各位跟我一样的新手朋友,一个导师QQ号(177410761):wgz001
    这是我见过最耐心,最热心肠的导师,
    例如,我每次遇上不懂的学习问题,心急都会抖动,视频,刷表情找他
    他从未生气,每次都很认真的解答我的问题,相当耐心。。。。

    不过,wgz001 有个接头暗语,要记得哦:
    人生苦短,我要睡觉

    这时候,你要回答

    人生苦短,一起睡觉


    ---------------------------------------------------------------------------------------------------------------------------------------
    wgz001导师说,上源码要跟他一样热心肠有耐心,乐于分享,下面是源文件:
    人生苦短,我要睡觉.rar (4.23 KB, 下载次数: 55, 售价: 8 枚飘云币)
    001.jpg
    002.jpg
    003.jpg
    004.jpg
    005.jpg
    006.jpg
    007.jpg
    008.jpg
    009.jpg
    010.jpg
    011.jpg
    012.jpg
    013.jpg
    014.jpg
    015.jpg
    016.jpg
    017.jpg
    018.jpg

    评分

    参与人数 10威望 +17 飘云币 +13 收起 理由
    xiaobing66 + 1 很给力!
    m2m + 1 感谢发布原创作品!
    smallhorse + 2 + 2 大赞,王哥的确平易近人!
    论坛管理员 + 1 感谢发布原创作品!
    cxqdly + 2 + 2
    挚爱科技 + 1 PYG有你更精彩!
    不破不立 + 5 + 5 感谢发布原创作品!
    wangwei628 + 1 + 1
    wgz001 + 2 + 2 很给力!
    风轻云淡 + 1 不错哦,深的王公子的手艺!!!

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    昨天 10:54
  • 签到天数: 521 天

    [LV.9]以坛为家II

    发表于 2017-11-29 16:08:56 | 显示全部楼层
    总结出来的就是经验,值得借鉴~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-11-29 16:34:51 | 显示全部楼层
    感谢分享技术心得 ~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:15
  • 签到天数: 423 天

    [LV.9]以坛为家II

    发表于 2017-11-29 16:38:48 | 显示全部楼层
    我就喜欢有码的表哥
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-12-5 19:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    发表于 2017-11-29 17:18:41 来自手机 | 显示全部楼层
    6B了,新花样!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 221 天

    [LV.7]常住居民III

    发表于 2017-11-29 18:06:35 | 显示全部楼层
    学习,从E的角度使用C。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-12-7 13:29
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2017-11-29 18:14:46 | 显示全部楼层
    感谢分享 前来支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-11-27 20:24
  • 签到天数: 49 天

    [LV.5]常住居民I

    发表于 2017-11-29 18:38:27 | 显示全部楼层
    虽然看不懂,就知道很厉害的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-10-26 09:05
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2017-11-29 18:44:17 | 显示全部楼层
    VC6 不支持,能不能编译一个成品,让我扣一下。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入论坛

    本版积分规则

    小黑屋|手机版|Archiver|飘云阁安全论坛 ( 粤ICP备15107817号-2|友情赞助  

    GMT+8, 2017-12-16 07:28

    Powered by Discuz! X3.3 Licensed

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表