关键字: ida sig runtime libcmt.lib
这两天研究了一下ida的sig机制, 大体就是把lib导成pat, 然后pat再导成sig, 原理是字节匹配来确定函数名.
签名的细节这里就不研究了, 具体讲一下vc静态库的sig签名制作过程。
1. 简单的签名过程
pcf libcmt.lib libcmt.pat
sigmake libcmt.pat libcmt.sig
如果没问题的话上面两句就可以搞定, 但问题是中间会出错.
2. 把lib转成obj来进行签名, 这个转换过程比较复杂, 这里通过bat来处理
把附件压缩包
/Files/wangkang2009/bin.rar里的内容解到ida\flair\bin中
修改run.bat里的目标lib名称, 不是vc lib目录的要修改lib2obj.bat, 转换使用的是2003里的lib.exe , 因此还需要设置vc2003的路径在lib2obj.bat里,
开始执行run.bat
中间会创建临时目录和临时文件, bat结束后会删除。
3. 运行结束后会生成exc文件, 修改exc后再次运行, 简单的把前面带;的注释行删除即可. 再次运行
sigmake -n"vc6 mt runtime lib" libcmt\*.pat vc6libcmt.sig
最后可发现sig文件建立。
posted on 2011-10-17 18:51
wangkang 阅读(869)
评论(0) 编辑 收藏 引用