吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4850|回复: 10
收起左侧

[原创] 笔记之压缩壳的trick

[复制链接]
lufei 发表于 2017-3-16 17:50
本帖最后由 lufei 于 2017-3-16 18:28 编辑

FSG2.0压缩壳遇到的一个trick
首先一路f7,遇到往回跳的跳转就f4到下一条指令。来到下图的40B26A的位置。trick开始位置。

1.1.png
1.1

可以看到调用了两个call,一个是调用GetProcAddress,获取函数地址。另外一个是调用CreateThread,创建一个线程。
这两个callf8步过。
然后f7步入40B272,如下图所示。

1.2.png
1.2

又调用了两个call,一个是调用GetProcAddress,获取函数地址。另外一个是调用CloaseHandle,关闭线程句柄。
继续f8步过这两个call
然后f7步入40B272,如下图所示。

1.3.png
1.3

又调用了两个call,一个是调用GetProcAddress,获取函数地址。另外一个是调用ExitThread,结束当前线程。
这时候第二个call不能步过了。你f8步过40B29D就会跑飞了。
这时候应该在0040B2A4这个位置f2下断点。然后f9。然后一路单步,来到下图。

1.4.png
1.4

这时候可以看到一个比较大的跳转。
004001D1  - FF63 0C         jmpdword ptr ds:[ebx+0xC]                        ; UnPackMe.00401700
在这里下f2下断点,然后f9,单步就到了OEP

1.5.png
1.5

这里的trick就是结束当前线程,然后执行CreateThread创建那个线程的函数去了。代码如下。

[C] 纯文本查看 复制代码
#include <stdio.h>
#include <windows.h>
DWORD WINAPI ThreadProc(LPVOID pM)  
{  
    printf("1111111111");
    return 0;  
}  
void main()
{
        HANDLE handle1=CreateThread(NULL,0,ThreadProc,NULL,0,NULL); 
        ExitThread(0);
        getchar();
}

脱壳样本:
http://www.52pojie.cn/thread-10607-1-1.html

免费评分

参与人数 1吾爱币 +6 热心值 +1 收起 理由
Sound + 6 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

K2061707326 发表于 2017-3-17 06:26
很棒的帖子啊!!!!!
52pojieiymm 发表于 2017-3-17 08:18
yssun 发表于 2017-3-17 08:54
jkl718293 发表于 2017-3-17 09:10
额,,不是很明白
我不是高手 发表于 2017-3-17 10:04
谢谢分享
yu逍遥 发表于 2017-3-17 11:39
楼主辛苦,,支持一下
xuxiaoshan 发表于 2017-3-17 13:33
横厉害的帖子啊
xiaofengzi 发表于 2017-3-17 16:01
仔细看完了,学习了
xiaohong 发表于 2017-3-27 21:13

楼主辛苦,支持一下!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 08:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表