define dd rva on IDAPro
来源:互联网 发布:php处理上传的图片 编辑:程序博客网 时间:2024/06/05 06:22
前言
IDAPro载入PE分析后,会标出 dd rva GetOpenFileNameA 这样的助记符地址.
在这样的助记符地址上,按h键(一不小心就按一下), 助记符号地址变成了dd 1234h这样的rva地址.
如果再想变成好记的助记符地址,就麻烦了,IDAPro好像没有提供像k那样的快捷键.
现在正在分析一个加壳的程序,如果不改回来,就轮到我难受了. e.g. 加壳程序将引入表的IAT抹掉了,是动态恢复的, 在分析时,__IMPORT_DESCRIPTOR_KERNEL32中的DLL名称和NAME的RVA如果改不成dd rva GetOpenFileNameA这样一目了然的助记符, 静态分析时,会麻烦很多. 毕竟人不是机器. 要不然,要助记符干嘛.
经过试验,圈住rva地址, 用ALT+F1(自定义标注)可以改回rva地址的助记符地址的型式.
记录
先看原来的样子(IDA自动分析的结果)
.text:004066D6 ; ---------------------------------------------------------------------------.text:004066D9 db 0.text:004066DA db 0.text:004066DB db 0.text:004066DC __IMPORT_DESCRIPTOR_USER32_DLL dd rva INT_USER32_DLL.text:004066E0 dd 0 ; Time stamp.text:004066E4 dd 0 ; Forwarder Chain.text:004066E8 dd rva szUser32_dll ; DLL Name.text:004066EC dd rva GetWindowLongW ; Import Address Table.text:004066F0 __IMPORT_DESCRIPTOR_KERNEL32 dd rva INT_KERNEL32_dll ; Import Name Table.text:004066F4 dd 0 ; Time stamp.text:004066F8 dd 0 ; Forwarder Chain.text:004066FC dd rva aKernel32_dll ; DLL Name.text:00406700 dd rva HeapAlloc ; Import Address Table.text:00406704 .text:004201E8 off_4201E8 dd rva word_40127E.text:00406704 __IMPORT_DESCRIPTOR_RPCRT4 dd rva INT_RPCRT4_dll ; Import Name Table.text:00406708 dd 0 ; Time stamp.text:0040670C dd 0 ; Forwarder Chain.text:00406710 dd rva aRpcrt4_dll ; DLL Name.text:00406714 dd rva IUnknown_Release_Proxy ; Import Address Table.text:00406718 __IMPORT_DESCRIPTOR_COMDLG32 dd rva off_42022C ; Import Name Table.text:0040671C dd 0 ; Time stamp.text:00406720 dd 0 ; Forwarder Chain.text:00406724 dd rva aComdlg32_dll ; DLL Name.text:00406728 .idata:00401580 ; BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA).text:00406728 dd rva GetOpenFileNameA ; Import Address Table
这里用到的助记符都是rva地址.
假设手欠, 在dd rva GetOpenFileNameA的GetOpenFileNameA上按了一下h, 将rva地址变成了rva地址的16进制值.
.text:00406718 __IMPORT_DESCRIPTOR_COMDLG32 dd rva off_42022C ; Import Name Table.text:0040671C dd 0 ; Time stamp.text:00406720 dd 0 ; Forwarder Chain.text:00406724 dd rva aComdlg32_dll ; DLL Name.text:00406728 .idata:00401580 ; BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA).text:00406728 dd 1580h ; Import Address Table
现在看起来就很难受了, 现在改回来.
1580h的VA地址00401580h, 去00401580h看看
.idata:00401580 ; Imports from COMDLG32.dll.idata:00401580 ;.idata:00401580 ; BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA).idata:00401580 extrn GetOpenFileNameA:dword.idata:00401584 ; DWORD __stdcall CommDlgExtendedError().idata:00401584 extrn CommDlgExtendedError:dword
在.text:00406728圈住1580h, 右击,选择菜单 Menual…
填入 rva GetOpenFileNameA, 不要选check operand, 点击确定
助记符回来了.
.text:00406728 .idata:00401580 ; BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA).text:00406728 80 15 00 00 dd rva GetOpenFileNameA ; Import Address Table
在手工添加rva 标号时,如果标号不存在(按h键时,IDA可能直接将符号删了(加入一个dowrd_xx标号,只有一处在引用)),可以去对应的目标VA处,添加一个标号,再ALT+F1, 恢复dd rva 助记符.
- define dd rva on IDAPro
- mytunet on DD-Wrt on La Fonera
- W32Dasm、IDAPro、softice、olldbg区别
- 破解利器C32Asm和IDApro
- IDAPRO的python插件-IDAPython
- 汇编1-IDApro权威指南
- experiment : add struct define on IDA6.1
- dd
- dd
- DD
- dd
- dd
- dd
- DD
- dd
- dd
- dd
- dd
- 行为识别笔记:关于行为检测/识别问题的分类及研究进展的讨论
- 『Linux运维笔记----网卡故障:弹出界面eth0: 错误:没有找到合适的设备』
- 排序方法简单总结
- 函数执行过程(预处理->编译->汇编->链接)
- WebView使用及原理
- define dd rva on IDAPro
- python -- 模块相关的命令
- Understanding LSTM Networks
- HDU 5077 NAND(真值表状压)
- Thinkphp 5.0整合支付宝即时到账最新接口,含模型验证完整实例
- 深度学习前期准备
- 几种页面置换算法,会算所需换页数
- python对文件及文件夹的一些操作
- 1093. Count PAT's