首页
社区
课程
招聘
ArtCursors4.01脱壳+拆引信
2004-4-25 19:02 10795

ArtCursors4.01脱壳+拆引信

2004-4-25 19:02
10795
目标:ArtCursors 4.01
壳:ASProtect 1.23 RC4

没办法,偶特别喜欢32位色的精美小图标、光标,懂得一点PhotoShop,可是PhotoShop竟不支持图标、光标格式!于是上网狂找能编辑32位色图标、光标的软件,结果发现:怎么那些好用的图标编辑软件都那么喜欢穿Aspr牌的马甲呢?网上pj版又不好找,很吊胃口啊,不行,欲火焚身,非把她们的马甲脱光光再插插了不可~~~~~~~~~~~~~唉,偶等菜鸟不会分析注册算法,只能手忙脚乱地拿着各种工具干危险的力气活――爆破

一、脱壳
用stripper2.07,秒杀Aspr!
================================================================================
二、修补
偷走的代码被变形了,Stripper就新增加一个段,把变形的入口代码抄下来放这里,实在不爽,不过天助我也,这个软件的早期版本我脱过,Delphi5写的,他们的入口代码的格式我都能背熟了:

PUSH EBP
MOV EBP,ESP
ADD ESP,-0C
MOV EAX,xxxxxx
CALL xxxxxx
CALL [xxxxxx]  〈=被偷走的代码执行完后来到这里

只要在合适的时候找到EAX是多少就好了。
载入原版跟踪,闯过26处SEH,然后在按Alt-M打开内存镜象,在code段设置内存访问断点,断下后来到这里:

0040692C  - FF25 B0E25400   JMP DWORD PTR DS:[54E2B0]  〈=断在这里
00406932    8BC0            MOV EAX,EAX
00406934  - FF25 ACE25400   JMP DWORD PTR DS:[54E2AC]
0040693A    8BC0            MOV EAX,EAX
0040693C  - FF25 A8E25400   JMP DWORD PTR DS:[54E2A8]
00406942    8BC0            MOV EAX,EAX
00406944  - FF25 A4E25400   JMP DWORD PTR DS:[54E2A4]
0040694A    8BC0            MOV EAX,EAX

清除内存访问断点后,继续F8跟踪,来到这里:

00406A34    BA 08615400     MOV EDX,ARTCUR.00546108
00406A39    52              PUSH EDX
00406A3A    8905 DCD45400   MOV DWORD PTR DS:[54D4DC],EAX
00406A40    8942 04         MOV DWORD PTR DS:[EDX+4],EAX
00406A43    C742 08 0000000>MOV DWORD PTR DS:[EDX+8],0
00406A4A    C742 0C 0000000>MOV DWORD PTR DS:[EDX+C],0
00406A51    E8 8AFFFFFF     CALL ARTCUR.004069E0
00406A56    5A              POP EDX
00406A57    58              POP EAX
00406A58    E8 C7D0FFFF     CALL ARTCUR.00403B24  〈=在此处记下EAX值:544d9c
00406A5D    C3              RETN

从406a5d处返回到545244 CALL [54BC14]
上面的代码片段执行了一部分54523F CALL 00406A2C里的代码,因此可以在这个call里合适的时机找到EAX的值。

00545233    0000            ADD BYTE PTR DS:[EAX],AL  〈=被偷走的代码
00545235    0000            ADD BYTE PTR DS:[EAX],AL
00545237    0000            ADD BYTE PTR DS:[EAX],AL
00545239    0000            ADD BYTE PTR DS:[EAX],AL
0054523B    0000            ADD BYTE PTR DS:[EAX],AL
0054523D    0000            ADD BYTE PTR DS:[EAX],AL
0054523F    E8 E817ECFF     CALL ARTCUR.00406A2C        〈=断不下来
00545244    FF15 14BC5400   CALL DWORD PTR DS:[54BC14]  〈=断在这里

现在补上被偷走的代码:
00545234       55            PUSH EBP
00545235   .  8BEC          MOV EBP,ESP
00545237   .  83C4 F4       ADD ESP,-0C
0054523A   .  B8 9C4D5400   MOV EAX,00544D9C

然后用LordPE修正入口点为145234,再把最后一个节删掉,并用winhex把该节所对应的尾部数据删掉(从该节的Roffset:183600开始到尾部)。
===================================================================================
三、拆引信

用Stripper脱壳的文件,运行时总是提示时间到了,只能跟原版比较跟踪。
在545244处,
545244  CALL DWORD  [54BC14]
原版call进544c48,而脱壳版call进544d44,于是把脱壳文件的54BC14处对应的文件偏移处数据改为48 4c 54 00,保存,运行,轰~~~~~~~来到一个除法“炸弹”:

004FF0F3  |.  E8 5429F6FF   CALL dump.00461A4C
004FF0F8  |.  8BD8          MOV EBX,EAX
004FF0FA  |.  81FB 40420F00 CMP EBX,0F4240
004FF100  |.  7E 34         JLE SHORT dump.004FF136  〈=要跳
004FF102  |.  E8 D9EEF7FF   CALL dump.0047DFE0
004FF107  |.  85C0          TEST EAX,EAX
004FF109  |.  7E 2B         JLE SHORT dump.004FF136
004FF10B  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
004FF10E  |.  33C0          XOR EAX,EAX
004FF110  |.  E8 9F39F0FF   CALL dump.00402AB4
004FF115  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004FF118  |.  E8 2F29F6FF   CALL dump.00461A4C
004FF11D  |.  2BD8          SUB EBX,EAX
004FF11F  |.  B8 17000000   MOV EAX,17
004FF124  |.  99            CDQ  〈=异常

原版跟踪发现004FF100处在原版是跳的,不然也会异常,就把脱壳版的004FF100处机器码改成EB 34,保存,运行。。。
轰!!!!!!!!!!!!!!!!!!!!!!!!!!!!
一个窗口炸弹被引爆了!无限的脱壳版程序在运行,系统资源耗尽!
重起,继续跟踪,发现炸弹引信在此:

004FF01A  |.  E8 2D2AF6FF   CALL dump.00461A4C
004FF01F  |.  3D 804F1200   CMP EAX,124F80
004FF024  |.  7E 30         JLE SHORT dump.004FF056  〈=不跳就挂
004FF026  |.  E8 B5EFF7FF   CALL dump.0047DFE0
004FF02B  |.  85C0          TEST EAX,EAX
004FF02D  |.  7E 27         JLE SHORT dump.004FF056
004FF02F  |.  6A 05         PUSH 5
004FF031  |.  6A 00         PUSH 0
004FF033  |.  6A 00         PUSH 0
004FF035  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
004FF038  |.  33C0          XOR EAX,EAX
004FF03A  |.  E8 753AF0FF   CALL dump.00402AB4
004FF03F  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004FF042  |.  E8 CD51F0FF   CALL dump.00404214
004FF047  |.  50            PUSH EAX                                 ; |FileName
004FF048  |.  6A 00         PUSH 0                                   ; |Operation = NULL
004FF04A  |.  6A 00         PUSH 0                                   ; |hWnd = NULL
004FF04C  |.  E8 D369F5FF   CALL <JMP.&shell32.ShellExecuteA>        ; \ShellExecuteA

就是4FF04C处的ShellExecuteA不断调用自己,造成窗口炸弹!好阴险的家伙!
原版的4FF024处也是跳的,不然也是窗口炸弹。
保存修改,再运行,哈,点掉NAG,主界面出来了!不过老是闪,看来还有地方有问题,经过跟踪发现,上面两个”炸弹“的”引信”(条件跳转语句)前的call,都是调用461a4c处的代码,461a4c肯定有问题!
在461a4c里,用两个OD经过漫长的跟踪比较各个寄存器的值,发现这些代码很可疑:

00408E64  |.  54            PUSH ESP                                 ; /pLocalFileTime
00408E65  |.  8D43 2C       LEA EAX,DWORD PTR DS:[EBX+2C]            ; |
00408E68  |.  50            PUSH EAX                                 ; |pFileTime
00408E69  |.  E8 F2DCFFFF   CALL <JMP.&kernel32.FileTimeToLocalFileT>; \FileTimeToLocalFileTime
00408E6E  |.  53            PUSH EBX                                 ; /pDOSTime
00408E6F  |.  8D43 02       LEA EAX,DWORD PTR DS:[EBX+2]             ; |
00408E72  |.  50            PUSH EAX                                 ; |pDOSDate
00408E73  |.  8D4424 08     LEA EAX,DWORD PTR SS:[ESP+8]             ; |
00408E77  |.  50            PUSH EAX                                 ; |pFileTime
00408E78  |.  E8 DBDCFFFF   CALL <JMP.&kernel32.FileTimeToDosDateTim>; \FileTimeToDosDateTime

经过这些代码后,原版和脱壳版的EAX寄存器的值不一样,脱壳版cmp指令比较eax值,触发“引信”。继续跟踪发现上面代码经过几次ret后,有这么一个语句:

004FF0A2  |.  3D A0BB0D00   CMP EAX,0DBBA0
004FF0A7  |.  0F9CC3        SETL BL  〈=好象是说,如果大于,就设置BL为1

发现只要把SETL BL改成mov bl,1就搞定了,至此脱壳+修复完全搞定,时间限制解除,运气好啊~~~~~~~~~
接下来就是搞定NAG了,偶累了,下次再说O_o

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞10
打赏
分享
最新回复 (21)
雪    币: 204
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
总统 2004-4-25 21:52
2
0
good
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thl0057 2004-4-25 22:33
3
0
再给你个编辑制作ICO的很COOL的东东

IconCool Editor v4.0
http://www.iconcool.com/
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-26 10:08
4
0
最初由 thl0057 发布
再给你个编辑制作ICO的很COOL的东东

IconCool Editor v4.0
http://www.iconcool.com/


靠,竟然是VBasic的玩意~~~~~~~~~
不想碰了,偶拆炸弹的那玩意好歹有图层功能,还能直接打开/保存photoshop的格式
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
temerata 1 2004-4-26 14:44
5
0
好文章!:D ,顶上多看看。
雪    币: 198
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cbapsui 2004-4-26 19:00
6
0
雪    币: 279
活跃值: (435)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
MengLong 6 2004-4-27 07:27
7
0
好东西,学习.
stripper2.07对付aspr1.23rc4好象不大好用.
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-27 10:23
8
0
最初由 MengLong 发布
好东西,学习.
stripper2.07对付aspr1.23rc4好象不大好用.


手动脱壳的话缺很多块,修复不来,资源又没恢复,受不了~~~~~~~~~~~~~~~~~~~~
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-27 19:57
9
0
我又花了好大工夫把他汉化了!
真想把他传上来,就怕老大禁止,嘿嘿~~~~~~~~
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-4-27 20:30
10
0
最初由 草原猎豹 发布
我又花了好大工夫把他汉化了!
真想把他传上来,就怕老大禁止,嘿嘿~~~~~~~~


费了很多功夫汉化,就传上来给大家用吧,或者找个链接。谢谢
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thl0057 2004-4-27 20:55
11
0
嘿嘿,那我就把爆破的IconCool Editor v4.0也放上来,试着汉化过,到第2个菜单就会出错,所以就放弃了
:D
fly,万一出了什么问题,你要罩着我们呐 :D
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-27 21:02
12
0
部分1
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-27 21:07
13
0
继续
通过汉化,发现黑名单了,居然还检测有没有soft-ice的注册表项目
一个窗口炸弹已经够折腾人了,但愿里面别再隐藏其他什么炸弹了,要出事了偶可赔不起~~~~~~~~~~~~~~~~

::0047E01E::  B9 44E14700              MOV ECX,47E144                              \->: frogsice.vxd
::0047E023::  E8 7460F8FF              CALL 0040409C                           \:JMPUP
::0047E028::  8B45 FC                  MOV EAX,DWORD PTR [EBP-4]               
::0047E02B::  E8 FCADF8FF              CALL 00408E2C                           \:JMPUP
::0047E030::  84C0                     TEST AL,AL                              
::0047E032::  74 01                    JE SHORT 0047E035                       \:JMPDOWN
::0047E034::  43                       INC EBX                                 
::0047E035::  8D45 F0                  LEA EAX,DWORD PTR [EBP-10]              \:BYJMP JmpBy:0047E032,
::0047E038::  E8 0739FEFF              CALL 00461944                           \:JMPUP
::0047E03D::  8B55 F0                  MOV EDX,DWORD PTR [EBP-10]              
::0047E040::  8D45 FC                  LEA EAX,DWORD PTR [EBP-4]               
::0047E043::  B9 44E14700              MOV ECX,47E144                              \->: frogsice.vxd
::0047E048::  E8 4F60F8FF              CALL 0040409C                           \:JMPUP
::0047E04D::  8B45 FC                  MOV EAX,DWORD PTR [EBP-4]               
::0047E050::  E8 D7ADF8FF              CALL 00408E2C                           \:JMPUP
::0047E055::  84C0                     TEST AL,AL                              
::0047E057::  74 01                    JE SHORT 0047E05A                       \:JMPDOWN
::0047E059::  43                       INC EBX                                 
::0047E05A::  8D45 EC                  LEA EAX,DWORD PTR [EBP-14]              \:BYJMP JmpBy:0047E057,
::0047E05D::  E8 E238FEFF              CALL 00461944                           \:JMPUP
::0047E062::  8B55 EC                  MOV EDX,DWORD PTR [EBP-14]              
::0047E065::  8D45 FC                  LEA EAX,DWORD PTR [EBP-4]               
::0047E068::  B9 5CE14700              MOV ECX,47E15C                              \->: Winice.vxd
::0047E06D::  E8 2A60F8FF              CALL 0040409C                           \:JMPUP
::0047E072::  8B45 FC                  MOV EAX,DWORD PTR [EBP-4]               
::0047E075::  E8 B2ADF8FF              CALL 00408E2C                           \:JMPUP
::0047E07A::  84C0                     TEST AL,AL                              
::0047E07C::  74 01                    JE SHORT 0047E07F                       \:JMPDOWN
::0047E07E::  43                       INC EBX                                 
::0047E07F::  8D45 E8                  LEA EAX,DWORD PTR [EBP-18]              \:BYJMP JmpBy:0047E07C,
::0047E082::  E8 4139FEFF              CALL 004619C8                           \:JMPUP
::0047E087::  8B55 E8                  MOV EDX,DWORD PTR [EBP-18]              
::0047E08A::  8D45 FC                  LEA EAX,DWORD PTR [EBP-4]               
::0047E08D::  B9 5CE14700              MOV ECX,47E15C                              \->: Winice.vxd
::0047E092::  E8 0560F8FF              CALL 0040409C                           \:JMPUP
::0047E097::  8B45 FC                  MOV EAX,DWORD PTR [EBP-4]               
::0047E09A::  E8 8DADF8FF              CALL 00408E2C                           \:JMPUP
::0047E09F::  84C0                     TEST AL,AL                              
::0047E0A1::  74 01                    JE SHORT 0047E0A4                       \:JMPDOWN
::0047E0A3::  43                       INC EBX                                 
::0047E0A4::  8D4D F8                  LEA ECX,DWORD PTR [EBP-8]               \:BYJMP JmpBy:0047E0A1,
::0047E0A7::  BA 70E14700              MOV EDX,47E170                              \->: Software\Microsoft\Windows\CurrentVersion\ProgramFilesDir
::0047E0AC::  B8 02000080              MOV EAX,80000002                        
::0047E0B1::  E8 A6EDFFFF              CALL 0047CE5C                           \:JMPUP
::0047E0B6::  837D F8 00               CMP DWORD PTR [EBP-8],0                 
::0047E0BA::  75 12                    JNZ SHORT 0047E0CE                      \:JMPDOWN
::0047E0BC::  8D4D F8                  LEA ECX,DWORD PTR [EBP-8]               
::0047E0BF::  BA B4E14700              MOV EDX,47E1B4                              \->: SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProgramFilesDir
::0047E0C4::  B8 02000080              MOV EAX,80000002                        
::0047E0C9::  E8 8EEDFFFF              CALL 0047CE5C                           \:JMPUP
::0047E0CE::  837D F8 00               CMP DWORD PTR [EBP-8],0                 \:BYJMP JmpBy:0047E0BA,
::0047E0D2::  74 28                    JE SHORT 0047E0FC                       \:JMPDOWN
::0047E0D4::  8D55 E4                  LEA EDX,DWORD PTR [EBP-1C]              
::0047E0D7::  8B45 F8                  MOV EAX,DWORD PTR [EBP-8]               
::0047E0DA::  E8 E52FFEFF              CALL 004610C4                           \:JMPUP
::0047E0DF::  8B55 E4                  MOV EDX,DWORD PTR [EBP-1C]              
::0047E0E2::  8D45 FC                  LEA EAX,DWORD PTR [EBP-4]               
::0047E0E5::  B9 FCE14700              MOV ECX,47E1FC                              \->: SoftIce
::0047E0EA::  E8 AD5FF8FF              CALL 0040409C                           \:JMPUP
::0047E0EF::  8B45 FC                  MOV EAX,DWORD PTR [EBP-4]               
::0047E0F2::  E8 F1E6FFFF              CALL 0047C7E8                           \:JMPUP
::0047E0F7::  84C0                     TEST AL,AL                              
::0047E0F9::  74 01                    JE SHORT 0047E0FC                       \:JMPDOWN
::0047E0FB::  43                       INC EBX                                 
::0047E0FC::  BA 0CE24700              MOV EDX,47E20C                          \:BYJMP JmpBy:0047E0D2,0047E0F9,    \->: Software\SoftIce
雪    币: 272
活跃值: (340)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
无名和尚 1 2004-4-27 23:14
14
0
牛人,始终是牛人,顶
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-4-27 23:41
15
0
最初由 thl0057 发布
嘿嘿,那我就把爆破的IconCool Editor v4.0也放上来,试着汉化过,到第2个菜单就会出错,所以就放弃了
:D
fly,万一出了什么问题,你要罩着我们呐 :D


兄弟客气了。把过程整理出来吧
雪    币: 194
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
baron 2004-4-27 23:56
16
0
你怎?天天不在?啊?
我斤你办短信,你也不回,是不是手? ??了?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thl0057 2004-4-28 09:27
17
0
最初由 baron 发布
你怎?天天不在?啊?
我斤你办短信,你也不回,是不是手? ??了?


实在抱歉,我的QQ一般是隐身的,手机也刚好没钱了,等会就去充值:p
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thl0057 2004-4-28 17:14
18
0
IconCool Editor v4.0爆破主文件

原版下载:
http://www.iconcool.com/download.htm

纯粹是爆破,没什么可写的,需要的朋友就试试吧,反正这个东东是我见过的制作修改图标最COOL的,嘿嘿
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
草原猎豹 4 2004-4-28 18:29
19
0
最初由 thl0057 发布
反正这个东东是我见过的制作修改图标最COOL的,嘿嘿


绘制图标最好的工具当然是PhotoShop了,各种滤镜图层效果多的跟米一样。只要再找个可以读取psd格式的编辑软件就好了。
还发现一个图标编辑软件叫Awicon,也很不错,也是Aspr1.24RC4的壳,这个我就搞不定了,不过网上有PJ版~~~~~嘿嘿~~~~~~~~~~~~~~~~~~~~~~~~~~
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风神 2004-5-5 20:39
20
0
:) :) :)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
agooday 2004-8-3 13:17
21
0
    非常感谢,总算找到了,这下可以扔掉3.03版了。ArtCursors应该算是最好的光标编辑软件之一了。
    这段时间ArtCursors升级频繁,到4.03了。

雪    币: 230
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
未日独留 1 2004-9-5 20:52
22
0
有个想法哈,大家都说脱壳费力,而且我感觉也是如此,我想到最后,找到入口点好像都不是问题啦!关键是修复吧!
那如果在OPE那补定一下,也就是给原文件加一个段,然后把要补定的东西写进去!然后在OPE的那个跳到此外,然后再跳回OPE的地方,不知会有问题吗!
       我现在还是菜鸟一只,大侠指点
游客
登录 | 注册 方可回帖
返回