首页 > 其他 > 详细

6. MASM32的bug和脱壳

时间:2020-11-03 21:23:49      阅读:32      评论:0      收藏:0      [点我收藏+]

VC6中,以下文件libc.lib是静态版,带D的是Debug版,带I的是Import版,带MT的是MultiThread版,带P的是CPP版。

 技术分享图片

 

 

 

此函数宏的定义有些不同,MASM错把GetEnvironmentStringsA当成了函数

LPCH

WINAPI

GetEnvironmentStrings(

    VOID

    );

 

 

LPWCH

WINAPI

GetEnvironmentStringsW(

    VOID

    );

 

#ifdef UNICODE

#define GetEnvironmentStrings  GetEnvironmentStringsW

#else

#define GetEnvironmentStringsA  GetEnvironmentStrings

#endif // !UNICODE

 

修改kernel32.inc文件后还要重新生成kernel32.lib,要用到C:\Users\Hang\Downloads\RadASM\masm32\tools\inc2l\inc2l.exe,此文件也有bug,调用mllink时路径不对,也要修复。

 

 

对于压缩壳:

EP开始运行,第一个push之后,对栈下访问断点,F9运行,直到断在本模块,并看见许多pushpop等恢复现场的操作时,找到jmp XXXX的代码,一般就是跳转到OEP

 

如果想dump出无壳程序,停在OEPdump是好时机,dump之后一般还要修复导入表才能正常使用。脱壳后的文件可以静态分析,也便于打补丁。

 

1. 先点dump,保存好文件

 技术分享图片

 

 

 

 

  1. 再点IAT AutoSearch,观察VASize是否正确

 技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Get Imports

 技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. 最后点Fix Dump,修复之前dump下来的文件

 技术分享图片

 

6. MASM32的bug和脱壳

原文:https://www.cnblogs.com/Nutshelln/p/13922589.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!