飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2904|回复: 7

[转贴] 一次手脱arm+upx双层壳+自校验

[复制链接]
  • TA的每日心情
    奋斗
    2023-12-2 20:17
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-8-26 07:21:09 | 显示全部楼层 |阅读模式
    一次手脱arm+upx双层壳+自校验

    完整动画请到 http://www.21disk.com 下载  提取码:10001381400331258533373415709


    脱壳文件】Easy_CD_Ripper 2.37
    【下载地址】http://sy.newhua.com/down/ezcdr_inst.exe
    【加壳方式】Armadillo 3.00a-3.61->Silicon Realms Toolworks+UPX 0.89.6-1.02/1.05-1.24 stub ->Markus & Laszlo
    【作者声明】:只是感兴趣,没有其他目的。错误之处敬请诸位前辈不吝赐教
    【调试环境】:Winxp、OllyDBD、PEiD
    【软件信息】:Easy CD Ripper可将CD音乐及WAV直接转换成MP3、WMA、VQF格式的工具,采用全新快速的MP3编码(LAME v3.89)、支持CDDB、且使用上相当简单快速。


    00561000 E>  60                pushad                              ; OD入口点
    00561001     E8 00000000       call Easy_CD_.00561006
    00561006     5D                pop ebp
    00561007     50                push eax
    00561008     51                push ecx
    00561009     EB 0F             jmp short Easy_CD_.0056101A
    -------------------------------------------------------------------------------------------------------------------------------------------------------------
    HE GetModuleHandleA   Shift+F9 一次。

    堆栈中:
    ===============================================================
    0012D264   00BB519B   /CALL 到 GetModuleHandleA 来自 00BB5195
    0012D268   0012D3A0   \pModule = "kernel32.dll"
    ===============================================================

    删除断点,Alt+F9 返回。
    00BB519B     8B0D 80D7BD00     mov ecx,dword ptr ds:[BDD780]       ; 来到这里。
    00BB51A1     89040E            mov dword ptr ds:[esi+ecx],eax
    00BB51A4     A1 80D7BD00       mov eax,dword ptr ds:[BDD780]
    00BB51A9     393C06            cmp dword ptr ds:[esi+eax],edi
    00BB51AC     75 16             jnz short 00BB51C4
    00BB51AE     8D85 B4FEFFFF     lea eax,dword ptr ss:[ebp-14C]
    00BB51B4     50                push eax
    00BB51B5     FF15 B850BD00     call dword ptr ds:[BD50B8]          ; kernel32.LoadLibraryA
    00BB51BB     8B0D 80D7BD00     mov ecx,dword ptr ds:[BDD780]
    00BB51C1     89040E            mov dword ptr ds:[esi+ecx],eax
    00BB51C4     A1 80D7BD00       mov eax,dword ptr ds:[BDD780]
    00BB51C9     393C06            cmp dword ptr ds:[esi+eax],edi
    00BB51CC     0F84 AD000000     je 00BB527F                         ; Magic Jump! 修改为:jmp 00BB527F  ★
    00BB51D2     33C9              xor ecx,ecx
    00BB51D4     8B03              mov eax,dword ptr ds:[ebx]
    00BB51D6     3938              cmp dword ptr ds:[eax],edi
    00BB51D8     74 06             je short 00BB51E0
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
    BP GetCurrentThreadId [ESP]<10000000,Shift+F9 运行。

    7C809737 k>  64:A1 18000000    mov eax,dword ptr fs:[18]
    7C80973D     8B40 24           mov eax,dword ptr ds:[eax+24]
    7C809740     C3                retn
    7C809741     90                nop

    取消断点。Alt+F9 返回。
    00BCCF47     A3 8C16BE00       mov dword ptr ds:[BE168C],eax       ; 到这里了。
    00BCCF4C     E8 5F85FEFF       call 00BB54B0
    00BCCF51     6A 00             push 0
    00BCCF53     E8 51E0FEFF       call 00BBAFA9
    00BCCF58     59                pop ecx
    00BCCF59     E8 074CFFFF       call 00BC1B65
    。。。。。。。。。。
    00BCCFA5     83F9 01           cmp ecx,1
    00BCCFA8     75 22             jnz short 00BCCFCC
    00BCCFAA     FF76 04           push dword ptr ds:[esi+4]
    00BCCFAD     FF76 08           push dword ptr ds:[esi+8]
    00BCCFB0     6A 00             push 0
    00BCCFB2     E8 AE4BFFFF       call 00BC1B65
    00BCCFB7     50                push eax
    00BCCFB8     A1 8016BE00       mov eax,dword ptr ds:[BE1680]
    00BCCFBD     8B48 60           mov ecx,dword ptr ds:[eax+60]
    00BCCFC0     3348 58           xor ecx,dword ptr ds:[eax+58]
    00BCCFC3     3348 34           xor ecx,dword ptr ds:[eax+34]
    00BCCFC6     2BF9              sub edi,ecx
    00BCCFC8     FFD7              call edi                            ; 进入,里面是ARM的OEP!
    00BCCFCA     8BD8              mov ebx,eax

    进入00BCCFC8。
    00516C30     60                pushad                              ; 这里是ARM的OEP!
    00516C31     BE 00204C00       mov esi,Easy_CD_.004C2000
    00516C36     8DBE 00F0F3FF     lea edi,dword ptr ds:[esi+FFF3F000]
    00516C3C     C787 C0F00C00 8C0>mov dword ptr ds:[edi+CF0C0],40B0C8>
    00516C46     57                push edi
    00516C47     83CD FF           or ebp,FFFFFFFF
    00516C4A     EB 0E             jmp short Easy_CD_.00516C5A
    00516C4C     90                nop
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
    开始脱upx。
    F8一次,到00516C31,注意ESP=0012F554。
    hr 0012F554,F9一次。

    00516D9B   ^\E9 0884FBFF       jmp Easy_CD_.004CF1A8
    00516DA0     B8 6D5100F0       mov eax,F000516D
    00516DA5     6D                ins dword ptr es:[edi],dx
    00516DA6     51                push ecx
    00516DA7     00C0              add al,al
    00516DA9     004D 00           add byte ptr ss:[ebp],cl
    00516DAC     0000              add byte ptr ds:[eax],al

    再F8一次。

    004CF1A8     55                push ebp                            ; upx的OEP!
    004CF1A9     8BEC              mov ebp,esp
    004CF1AB     B9 05000000       mov ecx,5
    004CF1B0     6A 00             push 0
    004CF1B2     6A 00             push 0
    004CF1B4     49                dec ecx
    004CF1B5   ^ 75 F9             jnz short Easy_CD_.004CF1B0
    004CF1B7     51                push ecx
    004CF1B8     53                push ebx
    004CF1B9     B8 40EE4C00       mov eax,Easy_CD_.004CEE40
    004CF1BE     E8 797AF3FF       call Easy_CD_.00406C3C
    004CF1C3     33C0              xor eax,eax
    004CF1C5     55                push ebp
    004CF1C6     68 D7F34C00       push Easy_CD_.004CF3D7
    004CF1CB     64:FF30           push dword ptr fs:[eax]
    004CF1CE     64:8920           mov dword ptr fs:[eax],esp
    004CF1D1     8D55 EC           lea edx,dword ptr ss:[ebp-14]
    004CF1D4     B8 01000000       mov eax,1
    004CF1D9     E8 DE38F3FF       call Easy_CD_.00402ABC
    004CF1DE     8B45 EC           mov eax,dword ptr ss:[ebp-14]
    004CF1E1     BA ECF34C00       mov edx,Easy_CD_.004CF3EC           ; ASCII "/reg"
    004CF1E6     E8 555DF3FF       call Easy_CD_.00404F40
    -------------------------------------------------------------------------------------------------------------------------------------------------------------
    运行LordPE,DUMP,保存为dumped.exe。
    运行RecImport,OEP=CF1A8,RVA=D617C,获取输入表,剪切2个无效指针,得到434个指针,抓取修复文件,保存为dumped_.exe。
    关闭OD。

    自校验解除

    运行脱壳文件,在启动界面结束后,CPU占用到100%,系统资源快被它消耗尽了!

    这个软件不能改动文件名!先把dumped_.exe修改成未脱壳的文件名Easy_CD_Ripper。
    打开OD,载入修改成未脱壳的文件名的Easy_CD_Ripper.exe。
          
    按照狂吃内存的现象,学习了fly兄弟的教程,知道自校验失败的话就会爆发“窗口炸弹”了。

    下断:BP FileTimeToLocalFileTime 。
    一路F9,待启动界面消失后,就要慢了,注意堆栈的变化。
    =============================================================================
    0012F8CC   00409674   /CALL 到 FileTimeToLocalFileTime 来自 Easy_CD_.0040966F
    0012F8D0   0012F8F0   |pFileTime = 0012F8F0
    0012F8D4   0012FA1C   \pLocalFileTime = 0012FA1C
    =============================================================================
    在pFileTime = 0012F8F0时,开始F8。
    来到这里。
    004CB51E    /74 0F             je short Easy_CD_.004CB52F          ; je 004CB52F-->jmp 004CB52F
    004CB520    |B8 00004000       mov eax,Easy_CD_.00400000           ; ASCII "MZP"
    004CB525    |E8 76D6F3FF       call Easy_CD_.00408BA0
    004CB52A    |8945 DC           mov dword ptr ss:[ebp-24],eax
    004CB52D   ^|EB F1             jmp short Easy_CD_.004CB520
    004CB52F    \8BC3              mov eax,ebx
    004CB531     E8 B687F3FF       call Easy_CD_.00403CEC
    004CB536     A1 A0374D00       mov eax,dword ptr ds:[4D37A0]
    004CB53B     8038 00           cmp byte ptr ds:[eax],0
    004CB53E     74 1B             je short Easy_CD_.004CB55B
    004CB540     A1 A0374D00       mov eax,dword ptr ds:[4D37A0]
    004CB545     8078 01 00        cmp byte ptr ds:[eax+1],0
    004CB549     75 10             jnz short Easy_CD_.004CB55B

    修改004CB51E,je 004CB52F-->jmp 004CB52F,保存文件。

    -------------------------------------------------------------------------------------------------------------------------------------------------------------
    运行脱壳文件,OK。


    00516C30     60                pushad                              ; 这里是ARM的OEP!
    哦还要说一下

    这是马大哥的教程

    unpack.cn

    马大哥的教程详细^_^跟着做几次就明白了

    不动了。完蛋了

    知道这个地址便直接拖过去

    我也是菜鸟,如有错请各位大侠纠正向大侠学习

    后面便是脱壳的优化了。

    一次手脱arm+upx双层壳+自校验

    [ 本帖最后由 enjon 于 2007-8-27 06:12 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-8-26 13:10:44 | 显示全部楼层
    精彩~~录像在我的机器上播放时,放不出来,请检查一下.
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-12-2 20:17
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2007-8-26 22:06:09 | 显示全部楼层
    请问楼主是不是下载的完整包?
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-12-2 20:17
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2007-8-27 05:36:16 | 显示全部楼层
    原帖由 glts 于 2007-8-26 13:10 发表
    精彩~~录像在我的机器上播放时,放不出来,请检查一下.





    请楼主到          http://www.21disk.com        提取文件:         提取码:10001381400331258533373415709


    文件大小:49.98M
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-8-27 15:11:11 | 显示全部楼层
    楼主辛苦,动画测试可以播放.支持一下!鼓励,/:good
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-6-14 12:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-9-7 15:38:13 | 显示全部楼层
    精彩,正在下载,希望有用,学习中
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-22 08:27:08 | 显示全部楼层
    做成动画会更好!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-27 12:12:54 | 显示全部楼层
    收藏了,好东西啊
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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