对于模式匹配。无非就是查找技术的应用。。。
对比的过程,其实也就是
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
int i= 0, j = 0, k = 0;
bool bRet = false;
char szTemp[10] = "hello", szTemp2[10] = {0};
cin >> szTemp2;
for (k = 0; k < strlen(szTemp)-1; k++)
{
if (szTemp == szTemp2[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
if (j == strlen(szTemp2)-1) //可以对这里的修改,来得到部分匹配和完成匹配的应用
{
bRet = true;
break;
}
}
cout << (bRet ? "": "not ") << "found/n";
return 0;
}
对于这样的程序在ASM 中那就不是这么的简单了。。。
分析时,必须采用动静结合的方法,不然,当没有符号表的时候,IDA 是没能识别函数的。。。
所以,对于一些库函数,简直就是噩梦。。。