首页
社区
课程
招聘
[旧帖] [谢谢两位大侠,已解决]请问如果不修复IAT而把所有API构建新成IAT可行吗? 0.00雪花
发表于: 2008-2-15 13:06 3428

[旧帖] [谢谢两位大侠,已解决]请问如果不修复IAT而把所有API构建新成IAT可行吗? 0.00雪花

2008-2-15 13:06
3428
小菜学了几个月也不明白修复IAT是不是必要的,所以请问各位大侠,如果不修复IAT而把所有API构建新成IAT可行吗?
比如我不管一个程序用到什么API而把所有(或大部分)API构个新IAT可以吗?

另外还有加壳程序在内存解压兵运行原代码后,源代码的.code段不在原位置(比如401000)为什么不会出错?
是不是壳保存了所有"直接取数据的重定位指令"那表并且修改了.code段啊?

小菜恳请各位大侠指教

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
小菜学了几个月也不明白修复IAT是不是必要的,所以请问各位大侠,如果不修复IAT而把所有API构建新成IAT可行吗?
比如我不管一个程序用到什么API而把所有(或大部分)API构个新IAT可以吗?

估计比写个程序的工程量要大。。。。
2008-2-15 13:18
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
3
把所有的api都写进去,不仅麻烦还得修改一堆东西
.CODE段不在原位置也是可以运行的
因为代码中的跳转指令(包括call)的"操作数"是:目标地址与下一条指令位置之间的差值
比如:
00433399   . /EB 13         JMP SHORT Systemom.004333AE
0043339B   . |33C0          XOR EAX,EAX
0043339D   . |40            INC EAX
0043339E   . |C3            RETN
0043339F   . |8B65 E8       MOV ESP,DWORD PTR SS:[EBP-18]
004333A2   . |C745 FC FEFFF>MOV DWORD PTR SS:[EBP-4],-2
004333A9   > |B8 FF000000   MOV EAX,0FF
004333AE   > \E8 56100000   CALL Systemom.00434409

004333ae-0043339b=13h
重定位主要是定位数据,只要代码中所使用数据的地址没有改变,程序就能够正常运行
2008-2-15 18:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢两位大哥!我明白多了
2008-2-16 08:17
0
游客
登录 | 注册 方可回帖
返回