posts - 20,comments - 15,trackbacks - 0
关键字: 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)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理