能力值:
( LV9,RANK:1250 )
2 楼
问Black-eye
能力值:
(RANK:570 )
3 楼
Flair目录下的TXT文件就是帮助文件。。。
能力值:
( LV3,RANK:30 )
4 楼
1
下载crypto++,编译得到一个静态的库cryptlib.lib,然后用IDA flair的应用程序pcf(或plb)生成cryptlib.pat:
pcf cryptlib.lib cryptlib.pat
打开cryptlib.pat,你会看到像这样的东西:
C3909090909090909090909090909090................................ 11 1234 0010 :0000 ?NotifyAttachmentChange@Filter@CryptoPP@@MAEXXZ
前面这个“C3909090909090909090909090909090................................”是函数NotifyAttachmentChange@Filter@CryptoPP@@MAEXXZ的最前面的32个字节,其中”…..”代表任意,因为这些可以与编译器有关。11代表后面那个1234是函数的33字节到43字节(11字节)的crc16的结果,那个0010:0000代表函数的44字节加上0x10的偏移(这个奇怪,有的用10进制,有的用16进制),那个地方(60)的值是0000,这个表达式这个复杂,就是为了给世界上的每一个函数都确定一个唯一的值,这样IDA就可以快速的分辨出已知的函数了。同时,你也可以全凭手工而不用pcf.exe来生成pat文件,这个在你知道一些关键函数在一些相关的应用程序中使用时,来同时在这些应用程序中标记这些函数比较有用。
生成pat文件了,下一步就是应用sigmake来生成sig了:
sigmake cryptlib.pat cryptlib.sig
可能这时候,会出现“cryptlib.pat (1066): bad pattern”这样的提示信息,我的解决方法是在cryptlib.pat文件中找到那一行1066,删掉它,呵呵。
在这个过程中,重要的问题就是解决冲突问题,就是自动生成的pat文件里,有很多函数的特征值一样了,需要手工来解决区分,如果你嫌太麻烦得话,可以简单的把生成的cryptlib.exc文件的前3行去掉就可。
运行: sigmake -xcryptlib.exc cryptlib.pat cryptlib.sig OK,把生成的cryptlib.sig扔到IDA的sig目录下,再点IDA菜单上的那朵花来载入我们的sig,如果都没有出错的话,OK,你会看到奇迹发生了,呵呵。如果出错的话,IDA会提示你是那一行,在sig里找到它的函数名,在pat里删掉,在生成一遍,呵呵,直到没错误发生。
2
制作lmgr.lib的sig
D:\IDA5.0\Flair\bin>pcf lmgr.lib lmgr.pat
lmgr.lib: skipped 1, total 153
D:\IDA5.0\Flair\bin>sigmake lmgr.pat lmgr92.sig
See the documentation to learn how to resolve collisitions.
: modules/leaves: 14688789/152, COLLISIONS: 142
程序生成lmgr92.exc,打开lmgr92.exc,删除前四行以;开始的信息,再运行
D:\IDA5.0\Flair\bin>sigmake -xlmgr92.exc lmgr.pat lmgr92.sig
即可生成lmgr92.sig,再将该文家放入IDA的sig目录下
3
根据上面的例子,或许你可以采用
D:\IDA5.0\Flair\bin>pcf xx1.lib xx1.pat
D:\IDA5.0\Flair\bin>pcf xx2.lib xx2.pat
D:\IDA5.0\Flair\bin>pcf xx3.lib xx3.pat
D:\IDA5.0\Flair\bin>pcf xx4.lib xx4.pat
此时xx1.pat、xx2.pat、xx3.pat、xx4.pat都是文本文件了。
然后合并xx1.pat到xx4.pat成xx.pat
再运行
D:\IDA5.0\Flair\bin>sigmake xx.pat xx.sig
呵呵,上面的这个方法俺没有试过,留给兄弟自己试验咯:)
能力值:
( LV2,RANK:10 )
5 楼
谢谢,搞定了。。。。。。。。。。。。。。。。。。。。。
其实很简单,就是把pat合并起来再sigmake就可以了,没仔细看文档,不好意思
能力值:
( LV2,RANK:10 )
6 楼
学习四楼。。。。
能力值:
( LV3,RANK:22 )
7 楼
我来挖个坟,网上实在找不到资料了. 按着楼上的思路,做了个工具,但sigmake的时候,会提示 error:(line 352 )FATAL:Bad xdigit, 我的解决办法是删除掉PAT中第352行,再重新sigmake.试了几下,比较管用,于是准备大规模的制作sig,一下子添加了上千个lib文件,到sigmake的时候一直提示上述错误,于是工具不停的读取错误行,删除,保存,再sigmake,如此反复,已经过去好几个小时了,PAT文件都被删了好几M,但依然没有停止的迹象..不知大家都是怎么用IDA这个签名工具的?