吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10551|回复: 20
上一主题 下一主题
收起左侧

[原创] 手脱PEX 0.99

[复制链接]
跳转到指定楼层
楼主
小生我怕怕 发表于 2010-9-5 12:02 回帖奖励
本帖最后由 小生我怕怕 于 2010-9-5 12:18 编辑
 
00482000 > /E9 F5000000     jmp 004820FA         //OD载入程序
00482005   |0D 0AC4C4C4     or eax, 0xC4C4C40A   //F8
0048200A   |C4C4            les eax, esp                             ; 非法使用寄存器
0048200C   |C4C4            les eax, esp                             ; 非法使用寄存器
0048200E   |C4C4            les eax, esp                             ; 非法使用寄存器
━━━━━━━━━━━━━━━━━━━━━━━━━━
004820FA    60              pushad
004820FB    E8 01000000     call 00482101              //这里执行ESP定律
00482100    E8 83C404E8     call E84CE588              //同时查找GetProcAddress,然后下段
00482105    0100            add dword ptr [eax], eax
00482107    0000            add byte ptr [eax], al
00482109  - E9 5D81EDD5     jmp D635A26B
0048210E    2240 00         and al, byte ptr [eax]
00482111    E8 06020000     call 0048231C
━━━━━━━━━━━━━━━━━━━━━━━━━━
7C80ADB0 >  8BFF            mov edi, edi                   //运行一次之后停下之后,ait+f9返回
7C80ADB2    55              push ebp
7C80ADB3    8BEC            mov ebp, esp
7C80ADB5    51              push ecx
7C80ADB6    51              push ecx
7C80ADB7    53              push ebx
7C80ADB8    57              push edi
━━━━━━━━━━━━━━━━━━━━━━━━━━
009900F2    85C0            test eax, eax               //右键查找命令cmp dword ptr [ecx], 0xA8C
009900F4    0F84 C5020000   je 009903BF                 //找到之后下断,然后运行
009900FA    E8 01000000     call 00990100
009900FF    6959 DF BD6C294>imul ebx, dword ptr [ecx-0x21], 0x40296C>
00990106    00DF            add bh, bl
00990108    AD              lods dword ptr [esi]
00990109    6C              ins byte ptr es:[edi], dx
0099010A    2940 00         sub dword ptr [eax], eax
━━━━━━━━━━━━━━━━━━━━━━━━━━
00990231    8139 8C0A0000   cmp dword ptr [ecx], 0xA8C
00990237    0F83 C2000000   jnb 009902FF                //这里就是我们的magic jump
0099023D    53              push ebx                    //将上面的jnb修改为jmp即可处理掉所有的加密指针
0099023E    E8 01000000     call 00990244               //具体加密如下
00990243    8D83 C40457E8   lea eax, dword ptr [ebx-0x17A8FB3C]
00990249    0100            add dword ptr [eax], eax
0099024B    0000            add byte ptr [eax], al
━━━━━━━━━━━━━━━━━━━━━━━━━━
00990259    80FA 5F         cmp dl, 0x5F                //这里是判断当前地址所属指针属于那个模块,从而判断是否加密
0099025C    76 3A           jbe short 00990298
0099025E    80FA 6A         cmp dl, 0x6A
00990261    74 39           je short 0099029C
00990263    80FA 68         cmp dl, 0x68
00990266    74 38           je short 009902A0
00990268    80FA B0         cmp dl, 0xB0
0099026B    72 05           jb short 00990272
0099026D    80FA B7         cmp dl, 0xB7
00990270    76 2A           jbe short 0099029C
00990272    8DB5 1D2A4000   lea esi, dword ptr [ebp+0x402A1D]     //这里完成对指针的加密
00990278    6A 04           push 0x4                             //取下一个指针地址从而进行循环加密
0099027A    59              pop ecx
0099027B    8A16            mov dl, byte ptr [esi]
0099027D    3810            cmp byte ptr [eax], dl
━━━━━━━━━━━━━━━━━━━━━━━━━━
009902FF    8907            mov dword ptr [edi], eax                 ; shlwapi.SHDeleteKeyA
00990301    8385 142A4000 0>add dword ptr [ebp+0x402A14], 0x4         //上面完成我们正确指针的赋值
00990308    61              popad                                     //直接运行吧
00990309    80BD 1C2A4000 0>cmp byte ptr [ebp+0x402A1C], 0x0
00990310    75 18           jnz short 0099032A
━━━━━━━━━━━━━━━━━━━━━━━━━━
00482020    E8 15000000     call 0048203A              //到达这里我们取消我们的硬件断点
00482025    E8 E80F0000     call 00483012              //开始一路F7的狂奔
0048202A    009A E8090000   add byte ptr [edx+0x9E8], bl
00482030    00E9            add cl, ch
00482032    68 571E4100     push 00411E57
00482037    EB 01           jmp short 0048203A
━━━━━━━━━━━━━━━━━━━━━━━━━━
00482032    68 571E4100     push 00411E57            //这里压入OEP地址
00482037    EB 01           jmp short 0048203A
00482039    C7              ???                                      ; 未知命令
0048203A    58              pop eax
0048203B    40              inc eax                  //这里将压入的OEP加1得到真实的OEP         
0048203C    50              push eax                 //在次压入OEP
0048203D    C3              retn                     //飞向我们的OEP
━━━━━━━━━━━━━━━━━━━━━━━━━━
这个壳无聊时练练手不错,指针可以不处理magic jump,直接用importrce的修复等级1直接可以完全修复指针
由于本人初学写脚本,脚本写得比较挫,高手别见笑
 
var addr
var GetProcAddress
sto
sto
mov addr,esp
bphws addr,"r"
gpa "GetProcAddress", "kernel32.dll"
bp $RESULT
run
BC $RESULT
rtu
find eip, #81398C0A00000F83C2000000#
bp $RESULT
esto
bc $RESULT
repl eip, #0F83C2000000#, #E9C300000090#, 10
RUN
bphwc $RESULT
STI
sto
sto
sto
sto
STI
sto
sto
sto
sto
STI
sto
sto
sto
STI
sto
sto
sto
sto
sto
sto
cmt eip,"This is the OEP!"
MSG "感谢使用此脚本,现在可以脱壳了"
ret  

附件中包含有脱壳程序,有壳程序,脱壳脚本以及脱文

Files.rar

456.97 KB, 下载次数: 147, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2威望 +1 热心值 +2 收起 理由
CHHSun + 1 + 1 感谢生哥发布原创
小糊涂虫 + 1 我很赞同!

查看全部评分

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

沙发
bozai120 发表于 2010-9-5 12:04
生哥发帖!!!威力无边!!!前排插入!!
3#
小糊涂虫 发表于 2010-9-5 12:15
头像被屏蔽
4#
yaojiqiang 发表于 2010-9-5 12:17
5#
qing、 发表于 2010-9-5 12:24
前排留名。
6#
z26650 发表于 2010-9-5 12:25
严重支持啊。下下来练习一下
7#
tuimaochang 发表于 2010-9-5 12:27
本帖最后由 tuimaochang 于 2010-9-5 13:09 编辑

下了看看,学习下,谢谢楼主
好吧,我学着脱了下。痛苦的发现小生连续两行的注释其实是一句话……
走了好多弯路啊……再次感谢
8#
や 陌恋 发表于 2010-9-5 12:37
[s:27]老公的每一次发帖都必将引起论坛一阵骚动...我嫉妒...[s:19]
9#
panpan 发表于 2010-9-5 12:51
支持下。。学习学习!
10#
小Z 发表于 2010-9-5 13:07
学习,哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 10:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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