huangyushun 发表于 2017-11-29 15:57:22

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

本帖最后由 huangyushun 于 2017-11-29 20:23 编辑

关于特征码搜索:
网上搜索看了看一些前辈留下的思路跟算法:
大概就看懂了两种思路:
1、暴力搜索,最原始而简单的方式,逐字节对比_不匹配逐字节递加向下
2、优化搜索,制作一张对比字符表(需要有重复字符)_一样逐字节对比,
   出现不匹配根据字符表里的重复字符,进行尽量多的跳过字节(尽可能防止重复对比字节)
----------------------------------------------------------------------------------------------------------------------
个人特征码搜索的思路是:
在字符或者是内存特征码对比中,
文本字符什么的,就一眼带过吧,用汇编字节来当例子说
汇编:
004177CD:    894424 08       mov dword ptr ss:,eax
004177D1 :8B4C24 1C       mov ecx,dword ptr ss:
例如两句,如果搜索,我们正常对比,
就容易重复对第一句
89 44 24 08
这四个字节码,在程序中出现很多很多很多,我们对比就容易浪费时间在这个上面对比
我的想法是,尽可能的不去对比这些重复的邻居字符,那么我们先对比
第一个字节跟最后一个字节,这样出现的几率就少了很多,免去前面几个重复字节码的浪费对比时间
那么按照这个思路_是不是一直首尾对比字节就好呢?
不是的,这些字节码有邻居亲戚关系的,
相互在一起的字节码一般都是某句汇编,所以字节码也是固定那几个字节,
(文本而言,就是成语跟词语还有一些行为词语,也是相互关联的,亲戚关系)
理论上,首尾匹配之后,从中间网两边比较容易过滤到不匹配的雷同字节,
但是似乎写代码又问题复杂化了(编程能力弱_最近刚学的C++)
于是乎,我用了单双数对比的方法,先对比双数再对比单数,从未尽量避免去重复对比关联的字节,浪费时间

中心思想:
首尾定位先对比,
然后中间分段对比_
可以根据子字符串的长度来选择分成多少段对比
我目前写的是2段,单双数_可以自己根据实际需求应用于其它领域
--------------------------------------------------------------------------------------------------------------------------------------------
大概总结:
而网上制作字符表来跳过字节的方式,可以归纳为:
在事情发生之后,尽量去避免他的重复发生,
----------------------------------------------------------------------
我的想法是预测事情可能发生的几率,去做准备避免他们发生
----------------------------------------------------------------------
那么根据理论,两种想法并不冲突可以相辅相成来用,实现效率最大化
但是编程怎么实现,心好累,能力不足,写不来了,累了
----------------------------------------------------------------------
主要的目的就是分享思路_希望能抛砖引玉
----------------------------------------------------------------------
----------------------------------------------------------------------
模糊匹配:??
以前都是在对比过程逐个字符转为字节数值来对比,浪费大把时间来转化,重复转化再重复继续重复
----------------------------------------------------------------------
int *查询字节集 = new int[查询字节集长度];
我用了整数数组来接受,如果是??就写入-1,其它的正常写入,
对比的时候,如果是-1就跳过,其它就正常的对比,
----------------------------------------------------------------------



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


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

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

这时候,你要回答

人生苦短,一起睡觉


---------------------------------------------------------------------------------------------------------------------------------------
wgz001导师说,上源码要跟他一样热心肠有耐心,乐于分享,下面是源文件:



[PYG]版务督察 发表于 2017-11-29 16:05:06

本帖最后由 版务督察 于 2017-11-29 16:07 编辑

前排学习!

风轻云淡 发表于 2017-11-29 16:08:56

总结出来的就是经验,值得借鉴~

Nisy 发表于 2017-11-29 16:34:51

感谢分享技术心得 ~

wgz001 发表于 2017-11-29 16:38:48

我就喜欢有码的表哥

冷月孤心 发表于 2017-11-29 17:18:41

6B了,新花样!

不破不立 发表于 2017-11-29 18:06:35

学习,从E的角度使用C。{:lol:}

LFYG 发表于 2017-11-29 18:14:46

感谢分享 前来支持

cdygr 发表于 2017-11-29 18:38:27

虽然看不懂,就知道很厉害的。

hpindigo 发表于 2017-11-29 18:44:17

VC6 不支持,能不能编译一个成品,让我扣一下。
页: [1] 2 3 4 5 6
查看完整版本: 庆飘云阁13周年_分享个人特征码搜索匹配思路跟源码_还有近期学C练手写的函数源码!