首页
社区
课程
招聘
[旧帖] [原创]手脱RLPack1.21完全版 0.00雪花
发表于: 2009-8-31 19:07 3522

[旧帖] [原创]手脱RLPack1.21完全版 0.00雪花

2009-8-31 19:07
3522

【破文标题】手脱RLPack1.21完全版
【破文作者】冷烟
【作者邮箱】chengudan@qq.com
【破解工具】exeinfope,OD,lordPE,Import REC 1.7
【破解平台】windows XP sp3
【软件名称】记事本
【软件大小】65K
【原版下载】windows xp里都有
【保护方式】RLPack v.1.20.1 Full Edition
【软件简介】winXP里的记事本
【破解声明】此次的RLPACK只是压缩和加密输入表,并不是最大强度
------------------------------------------------------------------------
【破解过程】
首先 exeinfope0.0.2.4 查壳 为RLPack v.1.20.1 Full Edition (EXE- aPLib 0.43 / LZMA 4.3x  )

那咱们就话不多说 OD忽略所有异常 载入程序

首先先单步 然后ESP定律 下硬件断点 F9两次后 来到这里

01022513    60              pushad           
01022514    E8 00000000     call NOTEPAD.01022519
01022519    83C4 04         add esp,4
0102251C    8B6C24 FC       mov ebp,dword ptr ss:[esp-4]
01022520    E8 8B020000     call NOTEPAD.010227B0
01022525    E8 74240000     call NOTEPAD.0102499E
0102252A    E8 88430000     call NOTEPAD.010268B7
0102252F    837C24 28 01    cmp dword ptr ss:[esp+28],1
01022534    75 0C           jnz short NOTEPAD.01022542
01022536    8B4424 24       mov eax,dword ptr ss:[esp+24]
0102253A    8985 7E470000   mov dword ptr ss:[ebp+477E],eax
01022540    EB 0C           jmp short NOTEPAD.0102254E
01022542    8B85 7A470000   mov eax,dword ptr ss:[ebp+477A]
01022548    8985 7E470000   mov dword ptr ss:[ebp+477E],eax
0102254E    E8 100D0000     call NOTEPAD.01023263
01022553    EB 03           jmp short NOTEPAD.01022558
01022555    24 00           and al,0
01022557    00EB            add bl,ch

取消断点 继续F8单步向下,遇到向上的跳,就F4执行到跳转下条指令

期间有很多CALL与跳转 不管他 继续向下

向下后 到达这里  看见地下一个看不见头的大跳转 就知道是找到OEP了

0102276A    E8 B0350000     call NOTEPAD.01025D1F
0102276F    68 00400000     push 4000
01022774    68 DA030000     push 3DA
01022779    FFB5 71550000   push dword ptr ss:[ebp+5571]
0102277F    FF95 05040000   call dword ptr ss:[ebp+405]
01022785    EB 03           jmp short NOTEPAD.0102278A
01022787    2200            and al,byte ptr ds:[eax]
01022789    00E8            add al,ch
0102278B    CC              int3
0102278C    34 00           xor al,0
0102278E    00E8            add al,ch
01022790    DF              ???                                      ; 未知命令
01022791    0B00            or eax,dword ptr ds:[eax]
01022793    00E8            add al,ch
01022795    850A            test dword ptr ds:[edx],ecx
01022797    0000            add byte ptr ds:[eax],al
01022799    83BD 0C4E0000 0>cmp dword ptr ss:[ebp+4E0C],0
010227A0    74 07           je short NOTEPAD.010227A9
010227A2    E9 10100000     jmp NOTEPAD.010237B7
010227A7    EB 01           jmp short NOTEPAD.010227AA
010227A9    61              popad
010227AA  - E9 EE4BFEFF     jmp NOTEPAD.0100739D                     ; 这里跟入 就直接达到OEP
010227AF    90              nop
010227B0    60              pushad
010227B1    6A 40           push 40
010227B3    68 00100000     push 1000
010227B8    68 00000800     push 80000
010227BD    6A 00           push 0
010227BF    FF95 FD030000   call dword ptr ss:[ebp+3FD]

我们单步 直接到达OEP

0100739D    6A 70           push 70                                  ; 这里就是OEP了 记事本的
0100739F    68 98180001     push NOTEPAD.01001898
010073A4    E8 BF010000     call NOTEPAD.01007568
010073A9    33DB            xor ebx,ebx
010073AB    53              push ebx
010073AC    8B3D CC100001   mov edi,dword ptr ds:[10010CC]           ; kernel32.GetModuleHandleA
010073B2    FFD7            call edi
010073B4    66:8138 4D5A    cmp word ptr ds:[eax],5A4D
010073B9    75 1F           jnz short NOTEPAD.010073DA
010073BB    8B48 3C         mov ecx,dword ptr ds:[eax+3C]
010073BE    03C8            add ecx,eax
010073C0    8139 50450000   cmp dword ptr ds:[ecx],4550
010073C6    75 12           jnz short NOTEPAD.010073DA
010073C8    0FB741 18       movzx eax,word ptr ds:[ecx+18]
010073CC    3D 0B010000     cmp eax,10B
010073D1    74 1F           je short NOTEPAD.010073F2
010073D3    3D 0B020000     cmp eax,20B
010073D8    74 05           je short NOTEPAD.010073DF
010073DA    895D E4         mov dword ptr ss:[ebp-1C],ebx
010073DD    EB 27           jmp short NOTEPAD.01007406
010073DF    83B9 84000000 0>cmp dword ptr ds:[ecx+84],0E

直接使用OllyDump插件脱壳  保存为dump.exe 使用lordPE 重建文件PE头 无法运行

再打开Import REC 1.7  输入OEP地址 点搜索 提示找到 再点获取 无无效指针

修复转存文件  正常运行   也可以先修复指针 再重建PE 发现这样修复后的文件较小

------------------------------------------------------------------------
【破解总结】自己给记事本加个壳,然后自己脱,是很好的学习方法

这次脱的壳比较简单  以后还需提高

------------------------------------------------------------------------
希望能申请到个邀请码 继续学习


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 99
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
牛人太多了...
2009-9-1 12:39
0
雪    币: 99
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
嘿嘿...拿到邀请码咯
2009-9-8 07:44
0
雪    币: 82
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
向你学习;可我没有什么基础;现在还没有拿到邀请码;嫉妒呀
2009-9-8 09:36
0
雪    币: 90
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好想进去啊
======眼红
2009-9-8 17:55
0
游客
登录 | 注册 方可回帖
返回
//