使用windbg分析PE导入表(INT IAT)


Microsoft (R) Windows Debugger Version 10.0.18362.1 X86
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: C:\Windows\SysWOW64\notepad.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*C:\SymbolCache*http://msdl.microsoft.com/download/symbols
Symbol search path is: srv*C:\SymbolCache*http://msdl.microsoft.com/download/symbols
Executable search path is: 
ModLoad: 00dd0000 00dfb000   notepad.exe
ModLoad: 778a0000 77a3a000   ntdll.dll
ModLoad: 75be0000 75cc0000   C:\WINDOWS\SysWOW64\KERNEL32.DLL
ModLoad: 76b20000 76d1d000   C:\WINDOWS\SysWOW64\KERNELBASE.dll
ModLoad: 773a0000 773c1000   C:\WINDOWS\SysWOW64\GDI32.dll
ModLoad: 77350000 77367000   C:\WINDOWS\SysWOW64\win32u.dll
ModLoad: 75d30000 75e8a000   C:\WINDOWS\SysWOW64\gdi32full.dll
ModLoad: 75910000 7598c000   C:\WINDOWS\SysWOW64\msvcp_win.dll
ModLoad: 77010000 7712f000   C:\WINDOWS\SysWOW64\ucrtbase.dll
ModLoad: 77130000 772c7000   C:\WINDOWS\SysWOW64\USER32.dll
ModLoad: 76f50000 7700f000   C:\WINDOWS\SysWOW64\msvcrt.dll
ModLoad: 77440000 776b5000   C:\WINDOWS\SysWOW64\combase.dll
ModLoad: 759a0000 75a5b000   C:\WINDOWS\SysWOW64\RPCRT4.dll
ModLoad: 75070000 75090000   C:\WINDOWS\SysWOW64\SspiCli.dll
ModLoad: 75060000 7506a000   C:\WINDOWS\SysWOW64\CRYPTBASE.dll
ModLoad: 773d0000 7742f000   C:\WINDOWS\SysWOW64\bcryptPrimitives.dll
ModLoad: 75b60000 75bd6000   C:\WINDOWS\SysWOW64\sechost.dll
ModLoad: 75280000 75304000   C:\WINDOWS\SysWOW64\shcore.dll
ModLoad: 772d0000 77349000   C:\WINDOWS\SysWOW64\advapi32.dll
ModLoad: 66dc0000 66fcf000   C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.657_none_2e72ec50278a619e\COMCTL32.dll
(26b0.3fec): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00543000 ecx=daed0000 edx=00000000 esi=008e2540 edi=778a688c
eip=7794e9e2 esp=0030f4bc ebp=0030f4e8 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!LdrInitShimEngineDynamic+0x6e2:
7794e9e2 cc              int     3
0:000> 
### 对 Stripped 文件进行逆向工程的方法 Stripped 文件是指编译后的可执行文件或库文件中去除了符号和其他调试信息,这使得传统的基于符号名的反汇编和调试变得困难。然而,仍然有多种技术和工具可以帮助理解和分析这类文件。 #### 使用静态分析技术 通过静态分析可以直接查看二进制文件的内容而无需运行它。对于 stripped 的 ELF 或 PE 文件来说,可以利用 IDA Pro、Ghidra 等强大的反汇编工具来进行深入研究。这些工具有助于识别函数边界并尝试重建调用图谱[^1]。 #### 动态分析法 动态分析涉及实际执行目标应用程序,并监控其行为模式。当面对 stripped 文件时,可以通过设置断点跟踪特定 API 调用或者监视内存访问情况来推断程序逻辑。例如,在 Linux 下使用 GDB 进行动态调试;而在 Windows 上则可以选择 WinDbg 工具集[^2]。 #### 数据恢复策略 针对被 strip 掉的信息(如字符串常量),可以从二进制镜像里提取出来作为线索。许多编程语言会在最终产物中保留某些形式的人类可读文本片段,即使是在高度优化之后也不例外。此外,还可以寻找未初始化全局变量所在的 .bss 段位置,因为这里通常保存了一些有意义的名字空间定义[^3]。 ```cpp // 示例:从 stripped 文件中定位可能存在的硬编码字符串 #include <iostream> #include <cstring> int main() { char* str = "This is a hidden string"; // 假设这是存在于 binary 中的一串字符 std::cout << "Found String: " << str << "\n"; } ``` #### 利用已知结构特征 了解常见的文件格式特性有助于解析 stripped 文件。以 PE 文件为例,尽管部分元数据已被移除,但各个区段(section)依然遵循既定布局规则。特别是导入地址 (IAT),即便在经过混淆处理的情况下也往往能够找到入口点进而揭示依赖关系网络[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值