IDA分析脱壳后丢失导入表的PE
2017-06-18 22:07
1411 查看
1. 问题
一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极大影响。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/1f6a463e6a7d283024f65b6499f1fa53.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/5914f0ec46539fcaf78653ec2176f504.png)
2. 分析
从OD来看,41F480处的值就是API GetCurrentProcessId的地址,也就是壳修改后的导入表的位置,该地址在.rsrc Section内,即程序的资源段内,那么我们需要修复其导入表,以指向资源段内的地址
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/66f431dff786e7d7015fd54b0d214c82.png)
3. 修复导入表
《加密与解密》第3版的13.4.4节”重建输入表”(P340)就详细的讲解了利用ImportREC重建输入表的方法。
1> 用OD脱壳后断下(如本demo就在CreateMutexW或者CreateEventW上下断点即可断到脱壳后的代码)
2> 找个函数头作为OEP输入到Import REC中(当然如果能找到真正的OEP也是可以的),然后点击”IDAT AutoSearch”,然后点击”Get Imports”,得到下图的结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/dfb1e406f51d8ad42a6101a10cd16d6c.png)
3> 用OD dump脱壳后的PE后,再用Import REC点击”Fix Dump”即可修复导入表
4. IDA导入修复后的dump
1> 由于dump的导入表不在.rdata中了,IDA不会去自动加载.rsrc段的数据,这样即使修复了导入表后IDA也不能正常识别API函数,这时需要勾选”Manual Load”项,让IDA加载.rsrc段
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/5dab8d7e2d2878aeed7fe81c7bfb4528.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/f60b33366115562529f1bf3a743a5fa7.png)
2> IDA分析完成后,就能正常的显示dump调用的API了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/9dc2049322b8d2aa65cdc2ccb69757fb.png)
一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极大影响。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/1f6a463e6a7d283024f65b6499f1fa53.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/5914f0ec46539fcaf78653ec2176f504.png)
2. 分析
从OD来看,41F480处的值就是API GetCurrentProcessId的地址,也就是壳修改后的导入表的位置,该地址在.rsrc Section内,即程序的资源段内,那么我们需要修复其导入表,以指向资源段内的地址
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/66f431dff786e7d7015fd54b0d214c82.png)
3. 修复导入表
《加密与解密》第3版的13.4.4节”重建输入表”(P340)就详细的讲解了利用ImportREC重建输入表的方法。
1> 用OD脱壳后断下(如本demo就在CreateMutexW或者CreateEventW上下断点即可断到脱壳后的代码)
2> 找个函数头作为OEP输入到Import REC中(当然如果能找到真正的OEP也是可以的),然后点击”IDAT AutoSearch”,然后点击”Get Imports”,得到下图的结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/dfb1e406f51d8ad42a6101a10cd16d6c.png)
3> 用OD dump脱壳后的PE后,再用Import REC点击”Fix Dump”即可修复导入表
4. IDA导入修复后的dump
1> 由于dump的导入表不在.rdata中了,IDA不会去自动加载.rsrc段的数据,这样即使修复了导入表后IDA也不能正常识别API函数,这时需要勾选”Manual Load”项,让IDA加载.rsrc段
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/5dab8d7e2d2878aeed7fe81c7bfb4528.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/f60b33366115562529f1bf3a743a5fa7.png)
2> IDA分析完成后,就能正常的显示dump调用的API了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/18/9dc2049322b8d2aa65cdc2ccb69757fb.png)
相关文章推荐
- PE手工分析-导入表和导入函数地址表分析
- PE手工分析-导入表和导入函数地址表分析
- excel内容导入数据库数据丢失问题的分析几解决方法
- 导入Excel混同数据列数据丢失分析与解决
- PE导入表分析
- windows PE Image 文件分析(4)--- 导入函数的绑定
- PE文件格式分析系列(文章1)----一个PE文件导入表数据的分析(MFC工程调试版)
- PE手工分析-导入表和导入函数地址表分析
- 编写OD插件将IDA中分析出来的函数名导入到OD中
- 使用OleDbConnection导入Excel混合数据列数据丢失分析与解决
- 编写OD插件将IDA中分析出来的函数名导入到OD中
- windbg分析PE导入导出表
- 手动脱壳进阶第六篇PE-SHiELD V0.25
- [导入]SunriseUpload.0.9.1的源码分析(五)
- [导入]SunriseUpload.0.9.1的源码分析(二)
- PE 文件格式分析
- PE 结构分析技术在反病毒中的应用
- ASPROTECT 1.23RC4 脱壳分析
- Session丢失可能的原因分析以及相应的解决办法
- [导入]SunriseUpload.0.9.1的源码分析(三)