压缩与脱壳-脱壳高级篇 下
2007-01-12 20:11:44 来源:WEB开发网核心提示: 再按F5一下,程序将中断如下:(记着:在这例中只能要按一下F5,压缩与脱壳-脱壳高级篇 下(2),否则将不能抓取正确的import表)0030:00446000 00000000 00000000 00000000 0004669C .............f..0030:0044601
再按F5一下,程序将中断如下:(记着:在这例中只能要按一下F5,否则将不能抓取正确的import表)
0030:00446000 00000000 00000000 00000000 0004669C .............f..
0030:00446010 0004612C 00000000 00000000 00000000 ,a..............
0030:00446020 000468B6 000461AC 00000000 00000000 .h...a..........
0030:00446030 00000000 000468D0 000461B4 00000000 .....h...a......
这时446000处不是?? ?? ?? ??,意味着import表己被解压了。
.import表以一个IMAGE_IMPORT_DESCRIPTOR数组开始。 image_import_descriptors数据有5组dwords组成。
image_import_descriptors结构:
①dd offset original_first_thunk
②dd timedatestamp 时间及日期标志
③dd forwardchain 正向链结索引
④dd offset library name以NULL结尾的ASCII字符的RVA地址,该字符串包含输入的DLL名,比如"Kernel32.dll"或"USER32.DLL"。
⑤dd offset first_thunk 该字段是在Image_thunk_data联合结构中的RVA偏移
其中timedatestamp和forwardchain通常设置为00000000, original first thunk 选项不是必须的.
:dd 446000 l 40
0030:00446000 00000000 00000000 00000000 0004669C .............f..
0030:00446010 0004612C 00000000 00000000 00000000 ,a..............
地址4669c 指向 LibraryName (RVA, 你需要加上基址imagebase+400000)
:db 44669c l 10
0030:0044669C 4B 45 52 4E 45 4C 33 32-2E 44 4C 4C 00 00 00 00 KERNEL32.DLL....
地址612c指向 first_thunk 库。
更多精彩
赞助商链接