首页
社区
课程
招聘
[求助]ASPack 2.12 -> Alexey Solodovnikov [Overlay]脱壳后无法运行
发表于: 2014-4-11 08:37 7648

[求助]ASPack 2.12 -> Alexey Solodovnikov [Overlay]脱壳后无法运行

2014-4-11 08:37
7648
脱壳新手,根据网上手动脱壳方法,搞了几次都有问题,高手帮忙脱一下。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
  • 1.rar (880.66kb,27次下载)
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 10
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
刚才试了试 也搞不定  都说用ESP到OEP
我试了也不行啊

0146C636    6A 58           push 0x58
0146C638    68 48614E01     push 1.014E6148
0146C63D    E8 7A110000     call 1.0146D7BC
0146C642    33F6            xor esi,esi
0146C644    8975 FC         mov dword ptr ss:[ebp-0x4],esi
0146C647    8D45 98         lea eax,dword ptr ss:[ebp-0x68]
0146C64A    50              push eax
0146C64B    FF15 04F44901   call dword ptr ds:[0x149F404]            ; kernel32.GetStartupInfoA
0146C651    6A FE           push -0x2
0146C653    5F              pop edi
0146C654    897D FC         mov dword ptr ss:[ebp-0x4],edi
0146C657    B8 4D5A0000     mov eax,0x5A4D
0146C65C    66:3905 0000340>cmp word ptr ds:[0x1340000],ax
0146C663    75 38           jnz short 1.0146C69D
0146C665    A1 3C003401     mov eax,dword ptr ds:[0x134003C]
2014-4-11 15:45
0
雪    币: 123
活跃值: (159)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
芯片无忧.rar
试试这个,能跑起来不?
上传的附件:
2014-4-11 16:34
0
雪    币: 123
活跃值: (159)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
ps:没优化没整合 程序可能有点大。。。。。
2014-4-11 16:38
0
雪    币: 627
活跃值: (668)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
5
1. 脱壳
我是写脚本脱的。应该感谢楼主,发现原来的脚本在还原资源数据时犯了一个低级的严重错误!貌视《UPX完美脱壳脚本》也存在同样的BUG。

这样,两个ASPack的区段就完全去掉了,对比脱壳前后的文件大小和区段信息:
[FONT="Courier"]2013-09-11  22:18           947,872 1.exe
2014-04-11  17:02         2,902,016 1_UnPacked.exe

Number  Name   VirtSize   RVA    PhysSize  Offset    Flag
    1 .text    0015E000 00001000 0008F800 00000400 E0000060
    2 .rdata   0004F000 0015F000 00012E00 0008FC00 C0000040
    3 .data    0001E000 001AE000 00005600 000A2A00 C0000040
    4 .rsrc    000E1000 001CC000 00023200 000A8000 C0000040
    5 .reloc   00028000 002AD000 0000CC00 000CB200 C2000040
    6 .aspack  0000E000 002D5000 0000DE00 000D7E00 E0000060
    7 .adata   00001000 002E3000 00000000 000E5C00 E0000040

Number  Name   VirtSize   RVA    PhysSize  Offset    Flag
    1 .text    0015E000 00001000 0015DE00 00000400 60000020
    2 .rdata   0004F000 0015F000 0004E800 0015E200 40000040
    3 .data    0001E000 001AE000 0000F800 001ACA00 C0000040
    4 .rsrc    000E1000 001CC000 000E0A00 001BC200 C0000040
    5 .reloc   00028000 002AD000 00027C00 0029CC00 C2000040[/FONT]

2. 修补文件自校验
原程序是经数字签名的,有自校验的代码:
[FONT="Courier"]0041AFCA  68 04010000    PUSH    0x104                                            ; /BufSize = 104 (260.)
0041AFCF  8D4C24 58      LEA     ECX, DWORD PTR [ESP+0x58]                        ; |
0041AFD3  51             PUSH    ECX                                              ; |PathBuffer
0041AFD4  6A 00          PUSH    0x0                                              ; |hModule = NULL
0041AFD6  FF15 1CF45500  CALL    NEAR DWORD PTR [<&KERNEL32.GetModuleFileNameA>]  ; \GetModuleFileNameA
0041AFDC  8D5424 54      LEA     EDX, DWORD PTR [ESP+0x54]
0041AFE0  52             PUSH    EDX                                              ; /Arg1
0041AFE1  E8 BACB0000    CALL    00427BA0                                         ; \1_UnPack.00427BA0
0041AFE6  A1 BC9E5C00    MOV     EAX, DWORD PTR [0x5C9EBC]
0041AFEB  83C4 04        ADD     ESP, 0x4
0041AFEE  68 A08C5800    PUSH    00588CA0                                         ; /Arg2 = 00588CA0 ASCII "2E3E39164832021EA8FE7DDB0C732E4D"
0041AFF3  50             PUSH    EAX                                              ; |Arg1 => 00000000
0041AFF4  E8 C9DA1000    CALL    00528AC2                                         ; \1_UnPack.00528AC2
0041AFF9  83C4 08        ADD     ESP, 0x8
0041AFFC  85C0           TEST    EAX, EAX
0041AFFE  0F95C0         SETNE   AL
0041B001  84C0           TEST    AL, AL
0041B003  0F84 1C010000  JE      0041B125                                         ; <- *** JUST Patch this!!!
0041B009  6A 00          PUSH    0x0                                              ; /Arg3 = 00000000
0041B00B  6A 00          PUSH    0x0                                              ; |Arg2 = 00000000
0041B00D  68 C48C5800    PUSH    00588CC4                                         ; |Arg1 = 00588CC4
0041B012  E8 0B4C0100    CALL    0042FC22                                         ; \1_UnPack.0042FC22
0041B017  6A 01          PUSH    0x1                                              ; /IsShown = 0x1
0041B019  6A 00          PUSH    0x0                                              ; |DefDir = NULL
0041B01B  6A 00          PUSH    0x0                                              ; |Parameters = NULL
0041B01D  68 F88C5800    PUSH    00588CF8                                         ; |FileName = "ea6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4g2H3j5h3&6Q4x3X3g2U0j5#2)9J5c8Y4c8G2L8$3I4K6i4K6u0r3N6r3g2K6N6q4)9J5c8V1y4Z5K9i4m8q4j5i4y4&6i4K6u0W2K9s2c8E0L8l9`.`."
0041B022  68 248D5800    PUSH    00588D24                                         ; |Operation = "open"
0041B027  6A 00          PUSH    0x0                                              ; |hWnd = NULL
0041B029  FF15 0CF55500  CALL    NEAR DWORD PTR [<&SHELL32.ShellExecuteA>]        ; \ShellExecuteA
...[/FONT]

CALL 00528AC2会出对话框,提示“程序已被非法篡改,运行失败...”,点“确定”后,SHELL32.ShellExecuteA将打开程序下载页面。
将0041B003处修改半个字节就OK了。
[FONT="Courier"]0041B003  0F85 1C010000  JNZ     0041B125[/FONT]
上传的附件:
2014-4-12 08:51
0
雪    币: 200
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也是楼主的问题,一样的壳,附加数据也按教程做了,运行起来CPU百分百,我也是新手,高手能不能帮忙看看
上传的附件:
2014-4-13 09:06
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
7
00427BA0 //数字签名校验
上传的附件:
2014-4-15 08:10
0
雪    币: 627
活跃值: (668)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
8
2014-4-15 08:25
0
雪    币: 627
活跃值: (668)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
9
昨天下来看了一下,应用名称:"Sws AspWebServer v2.3(标准版)"。
有趣的部分在脱壳后,重点在附加数据,通过“网络盒子(NexBox)”实现。Overlay需要解密,用于解密的Key是和原文件的校验值相关的,即脱壳后Key不正确,进入解密死循环。
注意Overlay的最后0xC字节,含两个文件指针(脱壳后需调整);一个标志"9465"。脱壳后如果忘记附加Overlay或标志不正确,将进入NexBox控制台。
2014-4-15 08:27
0
游客
登录 | 注册 方可回帖
返回