制作sig文件
来源:互联网 发布:unity3d 动态生成模型 编辑:程序博客网 时间:2024/06/06 08:44
本文为在学习过程中的笔记,写的不好请见谅.
在使用IDA的过程中,由于缺少符号文件,有些库函数不能识别.
例
int main(int argc, char* argv[]){printf("Hello World!\n");return 0;}
.text:00401000 _main proc near ; CODE XREF: start+AFp.text:00401000 push offset aHelloWorld ; "Hello World!\n".text:00401005 call sub_401010.text:0040100A add esp, 4.text:0040100D xor eax, eax.text:0040100F retn.text:0040100F _main endp
库函数printf并没有识别出来,而是
call sub_401010
以上述为例,制作printf.sig文件
查找printf.obj
在命令行输入 link-lib /list libc.lib
可以查看该库文件中所包含的所有obj文件,期中有一项为
build\intel\st_obj\printf.obj
提取printf.obj
在命令行输入link-lib /EXTRACT:build\intel\st_obj\printf.obj libc.lib
在当前目录下会产生一个printf.obj的文件
提取printf.obj特征码
在命令行中输入pcf printf.obj
在当前目录下会产生一个printf.pat的文件
制作sig文件
在命令行中输入sigmakeprintf.pat printf.sig
在当前目录下会产生一个printf.sig的文件
将printf.sig拷贝到IDA中的sig文件夹中,sig文件制作完成
在IDA中添加printf.sig文件后,printf即可识别
.text:00401000 _main proc near ; CODE XREF: start+AFp.text:00401000 push offset aHelloWorld ; "Hello World!\n".text:00401005 call _printf.text:0040100A add esp, 4.text:0040100D xor eax, eax.text:0040100F retn.text:0040100F _main endp
批处理
由于lib里边有很多OBJ所以这里用批处理文本来写,从《C++反汇编与逆向分析》得到以下代码
md %1_objscd %1_objsfor /F %%i in ('link -lib /list %1.lib') do link -lib /extract:%%i %1.libfor %%i in (*.obj) do pcf %%isigmake -n"%1.lib" *.pat %1.sigif exist %1.exc for %%i in (%1.exc) do find /v ";" %%i > abc.exc if exist %1.exc for %%i in (%1.exc) do > abc.exc more +2 "%%i"copy abc.exc %1.excdel abc.excsigmake -n"%1.lib" *.pat %1.sigcopy %1.sig ..\%1.sigcd ..del %1_objs /s /qrd %1_objs
0 0
- 制作sig文件
- IDA SIG文件制作 批处理方法
- 如何制作vc静态链接库的IDA SIG文件?
- ELF64文件逆向分析知识—[2]制作静态库SIG
- sig
- %SIG
- 怎样使用.sig文件生成/验证数字签名?
- 利用.sig文件验证数据的完整性
- 批量生成idapro的Sig文件
- linux sig
- SIG集合
- SIG函数
- sig/slot
- 没有sig文件时在IDA中定位main函数的一种方法
- python学习笔记 --- 实现将文件转换编码为utf-8-sig(带BOM)
- Linux下使用.sig签名文件验证 使用方法(仅记录,仍未解决。 请大侠指教)
- 给本地openwrt/LEDE软件源添加软件包,更新Package.sig签名文件,解决Signature check failed问题
- Oracle RAC SIG Home
- 系统架构,软件架构,解决方案以及企业架构关系
- GO语言学习:GoEclipse配置
- ZOJ-3328-Wu Xing【7th浙江省赛】
- 【CSS3】结构性伪类选择器—empty
- Django学习随手记(三)
- 制作sig文件
- 关于微信PC扫码支付
- php的memcache和memcached扩展区别
- 关于目前自己iOS项目使用的第三方开源库
- L0,L1,L2正则化浅析
- 韩顺平 javascript教学视频_学习笔记28_dom对象(document对象) 最重要的
- ecplise遇到You must restart adb and Eclipse.Please ensure that adb is correctly located at的问题
- 将各种格式flv,avi,mp4等的文件,转码成MP4(无音频)
- 降低oracle高水位线方法总结(包括验证结果)