首页
社区
课程
招聘
[求助]ASProtect 1.23 RC4 - 1.3.08.24
发表于: 2005-4-18 17:24 6110

[求助]ASProtect 1.23 RC4 - 1.3.08.24

2005-4-18 17:24
6110
尝试脱ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov

shfit+F9第24次:
堆栈内容:
0012FF3C    0012FF44  指针到下一个 SEH 记录
0012FF40    00F34307  SE 句柄
0012FF44    0012FFE0  指针到下一个 SEH 记录
0012FF48    00F34C49  SE 句柄
0012FF4C    0012FF90
0012FF50    00F20000
0012FF54    00F00000
0012FF58    00F34138
0012FF5C    00F4E8E4  ASCII "hRJjUADAk1M=";硬盘指纹第一次出现
0012FF60    00F33616  返回到 00F33616 来自 00F22524

shfit+F9第25次:
0012FF3C    0012FF44  指针到下一个 SEH 记录
0012FF40    00F3465C  SE 句柄
0012FF44    0012FFE0  指针到下一个 SEH 记录
0012FF48    00F34C49  SE 句柄
0012FF4C    0012FF90
0012FF50    00F20000
0012FF54    00F00000
0012FF58    00F34138
0012FF5C    00F4E8E4  ASCII "hRJjUADAk1M="
0012FF60    00F33616  返回到 00F33616 来自 00F22524

不知道硬盘指纹为什么没有出现的二次?

于是,只好根据精华6上weiyi75[Dfcg]的
<<Asprotect1.23 Rc4 之SynchroMagic脱壳修复+破解>>
找到最后一次异常(第28次按shift+F9就飞了,)

00F339EC     3100                 xor dword ptr ds:[eax],eax
00F339EE     64:8F05 00000000     pop dword ptr fs:[0]
00F339F5     58                   pop eax
00F339F6     833D B07EF300 00     cmp dword ptr ds:[F37EB0],0
00F339FD     74 14                je short 00F33A13
00F339FF     6A 0C                push 0C
00F33A01     B9 B07EF300          mov ecx,0F37EB0
00F33A06     8D45 F8              lea eax,dword ptr ss:[ebp-8]
00F33A09     BA 04000000          mov edx,4
00F33A0E     E8 2DD1FFFF          call 00F30B40
00F33A13     FF75 FC              push dword ptr ss:[ebp-4]
00F33A16     FF75 F8              push dword ptr ss:[ebp-8]
00F33A19     8B45 F4              mov eax,dword ptr ss:[ebp-C]
00F33A1C     8338 00              cmp dword ptr ds:[eax],0
00F33A1F     74 02                je short 00F33A23
00F33A21     FF30                 push dword ptr ds:[eax]
00F33A23     FF75 F0              push dword ptr ss:[ebp-10]
00F33A26     FF75 EC              push dword ptr ss:[ebp-14]
00F33A29     C3                   retn

然后寻找Stolen Code,Stolen Code的入口有什么特征吗?

下面是我怀疑的入口:

00B4DA1A     55            push ebp

00B4DA29     8F4424 00     pop dword ptr ss:[esp]                  ; 0012FFF0
00B4DA2D     8BEC          mov ebp,esp
00B4DA2F     81EC 0C000000 sub esp,0C
00B4DA48     53            push ebx
00B4DA53     68 4BDAB400   push 0B4DA4B
00B4DA5C     50            push eax
00B4DA62     FF3423        push dword ptr ds:[ebx]
00B4DA65     58            pop eax

00B4DA98     68 1DE24540   push 4045E21D
00B4DA9D     68 96563FAE   push AE3F5696
00B4DAA2     897C24 04     mov dword ptr ss:[esp+4],edi
00B4DAAF     8D6424 04     lea esp,dword ptr ss:[esp+4]
00B4DA8B     53            push ebx
00B4DABB     52            push edx
00B4DAC5     68 4BCE0235   push 3502CE4B

00B4DACF     64:FF35 00000000>push dword ptr fs:[0]
00B4DAD6     896C24 04     mov dword ptr ss:[esp+4],ebp
00B4DADE     83C4 04       add esp,4

00B4DAEA     8D643C D4     lea esp,dword ptr ss:[esp+edi-2C]
00B4DAEE     2BE7          sub esp,edi     

00B4DAF5     8D6404 28     lea esp,dword ptr ss:[esp+eax+28]
00B4DAF9     2BE0          sub esp,eax
00B4DB00     56            push esi
00B4DB05     8F4424 00     pop dword ptr ss:[esp]

00B4DB13     8D643C 00     lea esp,dword ptr ss:[esp+edi]  

00B4DB17     2BE7          sub esp,edi

00B4DB19     81EC 04000000 sub esp,4  
00B4DB23     51            push ecx
00B4DB27     8F4424 00     pop dword ptr ss:[esp]
00B4DB2F     81F0 DC191D83 xor eax,831D19DC

==========不知道stolen code到哪里结束?
38字节?or 11字节?or 根据stolen的字节从开始处截取相同长度的代码?

00F4DBAA     68 1BD4F400          push 0F4D41B
00F4DBAF     C3                   retn ;返回到00F4D41B
00F4DBB0     0000                 add byte ptr ds:[eax],al
00F4DBB2     0000                 add byte ptr ds:[eax],al
00F4DBB4     0000                 add byte ptr ds:[eax],al

回到这里:
00F4D41B    /EB 01                jmp short 00F4D41E
00F4D41D    |9A 51579CFC BF5F     call far 5FBF:FC9C5751
00F4D424     D4 F4                aam 0F4
00F4D426     00B9 5E140000        add byte ptr ds:[ecx+145E],bh

下面这一段不知是干什么用的:
00F4D41E     51                   push ecx
00F4D41F     57                   push edi
00F4D420     9C                   pushfd
00F4D421     FC                   cld
00F4D422     BF 5FD4F400          mov edi,0F4D45F
00F4D427     B9 5E140000          mov ecx,145E
00F4D42C     F3:AA                rep stos byte ptr es:[edi]
00F4D42E     9D                   popfd
00F4D42F     5F                   pop edi
00F4D430     59                   pop ecx
00F4D431     C3                   retn;返回到0040691C

回这里:
请问这里是真OEP吗?这一段代码如果是被stolen了的,为什么不是00呢?
而且这段的call前的代码不是38字节也不是11字节
dump后用lordpe修复,OEP填0040691C,再IAT AutoSearch,lordpe说不是
有效的OEp,不知怎么回事?

0040691C       FF                 db FF
0040691D       25                 db 25                                  ;  CHAR '%'
0040691E       9C                 db 9C
0040691F       C2                 db C2
00406920       52                 db 52                                  ;  CHAR 'R'
00406921       00                 db 00
00406922       8B                 db 8B
00406923       C0                 db C0
00406924       FF                 db FF
00406925       25                 db 25                                  ;  CHAR '%'
00406926       98                 db 98
00406927       C2                 db C2
00406928       52                 db 52                                  ;  CHAR 'R'
00406929       00                 db 00
0040692A       8B                 db 8B
0040692B       C0                 db C0
0040692C       FF                 db FF
0040692D       25                 db 25                                  ;  CHAR '%'
0040692E       94                 db 94
0040692F       C2                 db C2
00406930       52                 db 52                                  ;  CHAR 'R'
00406931       00                 db 00
00406932       8B                 db 8B
00406933       C0                 db C0
00406934       FF                 db FF
00406935       25                 db 25                                  ;  CHAR '%'
00406936       90                 db 90
00406937       C2                 db C2
00406938       52                 db 52                                  ;  CHAR 'R'
00406939       00                 db 00
0040693A       8B                 db 8B
0040693B       C0                 db C0
0040693C       53                 db 53                                  ;  CHAR 'S'
0040693D       B8                 db B8
0040693E       10                 db 10
0040693F       00                 db 00
00406940       00                 db 00
00406941       00                 db 00
00406942       85                 db 85
00406943       C0                 db C0
00406944       74                 db 74                                  ;  CHAR 't'
00406945       43                 db 43                                  ;  CHAR 'C'
00406946       83                 db 83
00406947       3D                 db 3D                                  ;  CHAR '='
00406948       D4                 db D4
00406949       B4                 db B4
0040694A       52                 db 52                                  ;  CHAR 'R'
0040694B       00                 db 00
0040694C       FF                 db FF
0040694D       75                 db 75                                  ;  CHAR 'u'
0040694E       0A                 db 0A
0040694F       B8                 db B8
00406950       E2                 db E2
00406951       00                 db 00
00406952       00                 db 00
00406953       00                 db 00
00406954       E8                 db E8
00406955       AB                 db AB
00406956       D3                 db D3
00406957       FF                 db FF
00406958       FF                 db FF
00406959       68                 db 68                                  ;  CHAR 'h'
0040695A       10                 db 10
0040695B       00                 db 00
0040695C       00                 db 00
0040695D       00                 db 00
0040695E       6A                 db 6A                                  ;  CHAR 'j'
0040695F       40                 db 40                                  ;  CHAR '@'
00406960       E8                 db E8
00406961       BF                 db BF
00406962       FF                 db FF
00406963       FF                 db FF
00406964       FF                 db FF
00406965       8B                 db 8B
00406966       D8                 db D8
00406967       85                 db 85
00406968       DB                 db DB
00406969       75                 db 75                                  ;  CHAR 'u'
0040696A       0C                 db 0C
0040696B    >  B8 E2000000        mov eax,0E2
00406970    .  E8 8FD3FFFF        call iconxp.00403D04
  ;这个call前的是被stolen了的code吗?
00406975    ?  EB 0C              jmp short iconxp.00406983
00406977    .  53                 push ebx
00406978    ?  A1 D4B45200        mov eax,dword ptr ds:[52B4D4]
0040697D    ?  50                 push eax
0040697E    ?  E8 B1FFFFFF        call iconxp.00406934
00406983    ?  891D E4B45200      mov dword ptr ds:[52B4E4],ebx
00406989    .  5B                 pop ebx
0040698A    ?  C3                 retn
0040698B    ?  90                 nop

请各位多指教!!

BTW:该壳用stripper_v207f脱了之后,还是有问题!
.......

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 218
活跃值: (2949)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
给个文件试一下才好测试呀
2005-4-18 18:07
0
雪    币: 440
活跃值: (922)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
3
不给能解答吗?
担心封ID....
2005-4-18 19:09
0
雪    币: 440
活跃值: (922)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
4
脱了很久,脱不了....
用stripper_v207f脱了之后也存在问题....,进不了主程序...
只能看到启动时的NAG....

跟踪stripper_v207f脱了后的程序:

查看字符串参考,可以看到这些敏感的字符:
ASCII "- KEY BEGIN KEY -"
ASCII "- KEY END KEY -"
ASCII "Software\Aha-soft\"
ASCII "Key"
ASCII "Time"

ASCII "FullProductName"
ASCII "UserName"
ASCII "You should restart application now"

下断点:

输入假码:
- KEY BEGIN KEY -
1234567890abcdefghijklmnopqrstuvwxyz
- KEY END KEY -

中断在:
004FD215   |.  46                 inc esi
004FD216   |.  33DB               xor ebx,ebx
004FD218   |>  8D4D D8            /lea ecx,dword ptr ss:[ebp-28]
004FD21B   |.  8B45 FC            |mov eax,dword ptr ss:[ebp-4]
004FD21E   |.  8B80 E0020000      |mov eax,dword ptr ds:[eax+2E0]
004FD224   |.  8B80 08020000      |mov eax,dword ptr ds:[eax+208]
004FD22A   |.  8BD3               |mov edx,ebx
004FD22C   |.  8B38               |mov edi,dword ptr ds:[eax]
004FD22E   |.  FF57 0C            |call dword ptr ds:[edi+C]
004FD231   |.  8B45 D8            |mov eax,dword ptr ss:[ebp-28]
004FD234   |.  8D55 DC            |lea edx,dword ptr ss:[ebp-24]
004FD237   |.  E8 B8B5F0FF        |call _iconxp.004087F4
004FD23C   |.  8B45 DC            |mov eax,dword ptr ss:[ebp-24]
004FD23F   |.  8D55 F0            |lea edx,dword ptr ss:[ebp-10]
004FD242   |.  E8 21B8F0FF        |call _iconxp.00408A68
004FD247   |.  8B55 F0            |mov edx,dword ptr ss:[ebp-10]
004FD24A   |.  B8 7CD54F00        |mov eax,_iconxp.004FD57C          ;  ASCII "- KEY BEGIN KEY -"
004FD24F   |.  E8 AC70F0FF        |call _iconxp.00404300
004FD254   |.  85C0               |test eax,eax
004FD256   |.  7E 08              |jle short _iconxp.004FD260
004FD258   |.  8D43 01            |lea eax,dword ptr ds:[ebx+1]
004FD25B   |.  8945 E8            |mov dword ptr ss:[ebp-18],eax
004FD25E   |.  EB 17              |jmp short _iconxp.004FD277
004FD260   |>  8B55 F0            |mov edx,dword ptr ss:[ebp-10]
004FD263   |.  B8 98D54F00        |mov eax,_iconxp.004FD598          ;  ASCII "- KEY END KEY -"
004FD268   |.  E8 9370F0FF        |call _iconxp.00404300
004FD26D   |.  85C0               |test eax,eax
004FD26F   |.  7E 06              |jle short _iconxp.004FD277
004FD271   |.  8BC3               |mov eax,ebx
004FD273   |.  48                 |dec eax
004FD274   |.  8945 E4            |mov dword ptr ss:[ebp-1C],eax
004FD277   |>  43                 |inc ebx
004FD278   |.  4E                 |dec esi
004FD279   |.^ 75 9D              \jnz short _iconxp.004FD218
004FD27B   |>  8D45 EC            lea eax,dword ptr ss:[ebp-14]
004FD27E   |.  E8 116BF0FF        call _iconxp.00403D94
004FD283   |.  837D E8 FF         cmp dword ptr ss:[ebp-18],-1
004FD287   |.  75 15              jnz short _iconxp.004FD29E
004FD289   |.  837D E4 00         cmp dword ptr ss:[ebp-1C],0
004FD28D   |.  7E 0F              jle short _iconxp.004FD29E
004FD28F   |.  8D45 EC            lea eax,dword ptr ss:[ebp-14]
004FD292   |.  BA B0D54F00        mov edx,_iconxp.004FD5B0           ;  ASCII "Not found row: - KEY BEGIN KEY -"
004FD297   |.  E8 906BF0FF        call _iconxp.00403E2C
004FD29C   |.  EB 19              jmp short _iconxp.004FD2B7
004FD29E   |>  837D E4 FF         cmp dword ptr ss:[ebp-1C],-1
004FD2A2   |.  75 13              jnz short _iconxp.004FD2B7
004FD2A4   |.  837D E8 00         cmp dword ptr ss:[ebp-18],0
004FD2A8   |.  7E 0D              jle short _iconxp.004FD2B7
004FD2AA   |.  8D45 EC            lea eax,dword ptr ss:[ebp-14]
004FD2AD   |.  BA DCD54F00        mov edx,_iconxp.004FD5DC           ;  ASCII "Not found row: - KEY END KEY -"
004FD2B2   |.  E8 756BF0FF        call _iconxp.00403E2C
004FD2B7   |>  837D EC 00         cmp dword ptr ss:[ebp-14],0
004FD2BB   |.  74 08              je short _iconxp.004FD2C5
004FD2BD   |.  8B45 EC            mov eax,dword ptr ss:[ebp-14]
004FD2C0   |.  E8 87FEFFFF        call _iconxp.004FD14C
004FD2C5   |>  8D45 F4            lea eax,dword ptr ss:[ebp-C]
004FD2C8   |.  E8 C76AF0FF        call _iconxp.00403D94

.....
.....

  |.  8D45 BC            lea eax,dword ptr ss:[ebp-44]
004FD497   |.  E8 C0580100        call _iconxp.00512D5C
004FD49C   |.  8B4D BC            mov ecx,dword ptr ss:[ebp-44]
004FD49F   |.  BA 48D64F00        mov edx,_iconxp.004FD648           ;  ASCII "FullProductName"
004FD4A4   |.  8B45 E0            mov eax,dword ptr ss:[ebp-20]
004FD4A7   |.  E8 F433F7FF        call _iconxp.004708A0
004FD4AC   |.  8D55 B4            lea edx,dword ptr ss:[ebp-4C]
004FD4AF   |.  8B45 FC            mov eax,dword ptr ss:[ebp-4]
004FD4B2   |.  8B80 F0020000      mov eax,dword ptr ds:[eax+2F0]
004FD4B8   |.  E8 5F80F3FF        call _iconxp.0043551C
004FD4BD   |.  8B45 B4            mov eax,dword ptr ss:[ebp-4C]
004FD4C0   |.  8D55 B8            lea edx,dword ptr ss:[ebp-48]
004FD4C3   |.  E8 A0B5F0FF        call _iconxp.00408A68
004FD4C8   |.  8B4D B8            mov ecx,dword ptr ss:[ebp-48]
004FD4CB   |.  BA 60D64F00        mov edx,_iconxp.004FD660           ;  ASCII "UserName"
004FD4D0   |.  8B45 E0            mov eax,dword ptr ss:[ebp-20]
004FD4D3   |.  E8 C833F7FF        call _iconxp.004708A0
004FD4D8   |>  33C0               xor eax,eax
004FD4DA   |.  5A                 pop edx
004FD4DB   |.  59                 pop ecx
004FD4DC   |.  59                 pop ecx
004FD4DD   |.  64:8910            mov dword ptr fs:[eax],edx
004FD4E0   |.  68 F5D44F00        push _iconxp.004FD4F5
004FD4E5   |>  8B45 E0            mov eax,dword ptr ss:[ebp-20]
004FD4E8   |.  E8 5B5BF0FF        call _iconxp.00403048
004FD4ED   \.  C3                 retn
004FD4EE    .^ E9 B562F0FF        jmp _iconxp.004037A8
004FD4F3    .^ EB F0              jmp short _iconxp.004FD4E5
004FD4F5    .  807D FB 00         cmp byte ptr ss:[ebp-5],0
004FD4F9    .  75 1B              jnz short _iconxp.004FD516
004FD4FB    .  8B0D D09F5200      mov ecx,dword ptr ds:[529FD0]      ;  _iconxp.00525C18
004FD501    .  8B09               mov ecx,dword ptr ds:[ecx]
004FD503    .  B2 01              mov dl,1
004FD505    .  A1 DC7B4000        mov eax,dword ptr ds:[407BDC]
004FD50A    .  E8 0DE9F0FF        call _iconxp.0040BE1C
004FD50F    .  E8 CC62F0FF        call _iconxp.004037E0
004FD514    .  EB 1B              jmp short _iconxp.004FD531
004FD516    >  E8 E55A0100        call _iconxp.00513000
004FD51B    .  84C0               test al,al
004FD51D    .  75 0A              jnz short _iconxp.004FD529
004FD51F    .  B8 74D64F00        mov eax,_iconxp.004FD674           ;  ASCII "You should restart application now"

程序在判断注册码的长度,开始字母,结束字母,以及格式以后需要重启验证

下面是判断长度等的程序:

================================================================
004F6D04   /$  53                 push ebx
004F6D05   |.  8BD8               mov ebx,eax
004F6D07   |.  803B 30            cmp byte ptr ds:[ebx],30  
// the first must be '0'
004F6D0A   |.  75 17              jnz short _iconxp.004F6D23
004F6D0C   |.  8BC3               mov eax,ebx
004F6D0E   |.  E8 01D3F0FF        call _iconxp.00404014
004F6D13   |.  3D AD000000        cmp eax,0AD   
///length of key must be 173
004F6D18   |.  75 09              jnz short _iconxp.004F6D23
004F6D1A   |.  80BB AC000000 3D   cmp byte ptr ds:[ebx+AC],3D  
// the last must be '='
004F6D21   |.  74 16              je short _iconxp.004F6D39
004F6D23   |>  B9 446D4F00        mov ecx,_iconxp.004F6D44             ;  ASCII "Invalid key"
004F6D28   |.  B2 01              mov dl,1
004F6D2A   |.  A1 DC7B4000        mov eax,dword ptr ds:[407BDC]
004F6D2F   |.  E8 E850F1FF        call _iconxp.0040BE1C
004F6D34   |.  E8 A7CAF0FF        call _iconxp.004037E0
004F6D39   |>  5B                 pop ebx
004F6D3A   \.  C3                 retn

再修正假码为:
- KEY BEGIN KEY -
0234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
90abcdefghijklmnopqrstuvwxyz=
- KEY END KEY -

通过!重启验证!

看注册表:
"Software\Aha-soft\IconXP\Registered"
username,regcode都在里面.....

下断点:regopenkeyexa,regquerykey,regclosekey.....

但是拦截不到!!
程序是怎么验证的呢????????

脱壳..算法..
都不成功...
郁闷死了.....
大侠们,帮帮忙...

给个程序下载地址:
IconXp v2.03
hxxp://9c4K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4A6V1L8X3g2@1i4K6u0W2j5$3!0E0i4K6u0W2j5$3&6Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5c8X3#2S2j5#2)9J5c8Y4y4%4K9h3&6X3L8#2)9J5c8U0m8Q4x3V1x3J5x3o6l9^5x3o6l9#2y4e0l9#2i4K6u0o6x3K6V1H3z5o6f1K6x3U0u0K6i4K6u0o6x3o6m8Q4x3X3g2Z5N6r3#2Q4x3@1j5`.

网上有个Gelios[tport]做的patch
哪位脱了壳,再写个算法,让我们学习学习....

期待中!!!
2005-4-21 14:10
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
ArtCursors也是Aha-soft的吧
看雪论坛精华合集里面有不少ASProtect脱壳后暗桩修复的过程
何不参看?
2005-4-21 14:26
0
雪    币: 440
活跃值: (922)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
6
"
标 题:ASProtect 1.23RC4 以壳解壳+暗桩修复+解除自校验+破解――ArtCursors V3.99B3
发信人:fly
时 间:2004-06-16,01:06
详细信息:

ASProtect 1.23RC4 以壳解壳+暗桩修复+解除自校验+破解――ArtCursors V3.99B3

"

多谢提点!~~
我再去看看精华去!好好学习学习!~

BTW:fly大侠,你在fcgchina中关于Crunch V5的那篇脱文,早上打算对照
好好学习一下的,下了Crunch一看,好像Crunch已经升级了(好快啊~~~),Licence画面上没有Continue按钮了....
注册信息要通过网上验证了...
你再看看吧!
2005-4-21 15:19
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
点“start”
论坛有这个问题的反映
2005-4-21 15:27
0
雪    币: 440
活跃值: (922)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
8
3Q!
对照学习学习~~
2005-4-21 15:34
0
游客
登录 | 注册 方可回帖
返回