傻人有傻福 发表于 2007-12-30 01:45:35

Asterisk Recovery Genie追码+算法+注册分析BY傻人有傻福

【破文标题】Asterisk Recovery Genie追码+算法+注册分析BY傻人有傻福
【破文作者】傻人有傻福
【作者邮箱】
【作者主页】
【破解工具】PEID+DEDE+OD
【破解平台】WINDOWS XP
【软件名称】Asterisk Recovery Genie
【软件大小】822K
【原版下载】http://www.onlinedown.net/soft/63077.htm
【保护方式】注册码+重启验证
【软件简介】是一款密码恢复软件,在你忘记密码的时候他很有用的.包括自动显示ie浏览器里form中的*字符等,支持多语言密码。
【破解声明】只为讨论、学习与分享破解技术,勿用于非法用途,请多多支持软件开发者!
------------------------------------------------------------------------
强烈建议大家先看下我写的破解总结
【破解过程】    拿到软件先查壳:Delphi程序,无壳。DEDE出手,查得注册事件地址在0048AAF4。OD载入,在0048AAF4下断,代码如下:(只选取比较有用的代码)
0048AB1C|.8B45 F8            mov eax,                   ;取用户名
0048AB1F|.8D55 FC            lea edx,
0048AB22|.E8 F1D4F7FF      call Asterisk.00408018
0048AB27|.8B45 FC            mov eax,
0048AB2A|.E8 3598F7FF      call Asterisk.00404364
0048AB2F|.85C0               test eax,eax                        ;判断是否输入用户名
0048AB31|.75 1A            jnz short Asterisk.0048AB4D
0048AB33|.B8 ECAB4800      mov eax,Asterisk.0048ABEC         ;ASCII "Please input regname!"
0048AB38|.E8 27EEF9FF      call Asterisk.00429964
0048AB3D|.8B83 0C030000      mov eax,dword ptr ds:
0048AB43|.8B10               mov edx,dword ptr ds:
0048AB45|.FF92 C4000000      call dword ptr ds:
0048AB4B|.EB 5D            jmp short Asterisk.0048ABAA
0048AB4D|>8D55 F0            lea edx,
0048AB50|.8B83 14030000      mov eax,dword ptr ds:
0048AB56|.E8 C1B6FBFF      call Asterisk.0044621C
0048AB5B|.8B45 F0            mov eax,                   ;取注册码
0048AB5E|.8D55 F4            lea edx,
0048AB61|.E8 B2D4F7FF      call Asterisk.00408018
0048AB66|.8B45 F4            mov eax,
0048AB69|.E8 F697F7FF      call Asterisk.00404364
0048AB6E|.85C0               test eax,eax                        ;判断是否输入注册码
0048AB70|.75 1A            jnz short Asterisk.0048AB8C
0048AB72|.B8 0CAC4800      mov eax,Asterisk.0048AC0C         ;ASCII "Please input regcode!"
0048AB77|.E8 E8EDF9FF      call Asterisk.00429964
0048AB7C|.8B83 14030000      mov eax,dword ptr ds:
0048AB82|.8B10               mov edx,dword ptr ds:
0048AB84|.FF92 C4000000      call dword ptr ds:
0048AB8A|.EB 1E            jmp short Asterisk.0048ABAA
0048AB8C|>8BC3               mov eax,ebx
0048AB8E|.E8 31FEFFFF      call Asterisk.0048A9C4            ;关键CALL
0048AB93|.84C0               test al,al
0048AB95|.74 09            je short Asterisk.0048ABA0
0048AB97|.8BC3               mov eax,ebx
0048AB99|.E8 0AFDFFFF      call Asterisk.0048A8A8
0048AB9E|.EB 0A            jmp short Asterisk.0048ABAA
0048ABA0|>B8 2CAC4800      mov eax,Asterisk.0048AC2C         ;ASCII "Regcode error!"
------------------------------------------------------------------------------------------------------
我们跟进上面的关键CALL来看看:(也是选取了比较有用的部分)
0048A9EE|.8B45 F8            mov eax,                   ;取假码
0048A9F1|.8D55 FC            lea edx,
0048A9F4|.E8 1FD6F7FF      call Asterisk.00408018
0048A9F9|.8B45 FC            mov eax,                   ;取假码
0048A9FC|.50               push eax
0048A9FD|.8D55 EC            lea edx,
0048AA00|.8B86 0C030000      mov eax,dword ptr ds:
0048AA06|.E8 11B8FBFF      call Asterisk.0044621C
0048AA0B|.8B45 EC            mov eax,                   ;取用户名
0048AA0E|.8D55 F0            lea edx,
0048AA11|.E8 02D6F7FF      call Asterisk.00408018
0048AA16|.8B55 F0            mov edx,                   ;取用户名
0048AA19|.8D4D F4            lea ecx,
0048AA1C|.8BC6               mov eax,esi
0048AA1E|.E8 91FCFFFF      call Asterisk.0048A6B4            ;算法CALL
0048AA23|.8B55 F4            mov edx,                   ;出现真码
0048AA26|.58               pop eax
0048AA27|.E8 849AF7FF      call Asterisk.004044B0            ;可以做内存注册机的地方
0048AA2C|.75 1C            jnz short Asterisk.0048AA4A
0048AA2E|.B3 01            mov bl,1
0048AA30|.8BC6               mov eax,esi
0048AA32|.E8 71FEFFFF      call Asterisk.0048A8A8
0048AA37|.B8 98AA4800      mov eax,Asterisk.0048AA98         ;ASCII "Register success!"
-----------------------------------------------------------------------------------------------------
我们再来看看算法CALL吧:(这次是比较完整的)
0048A6B4/$55               push ebp
0048A6B5|.8BEC               mov ebp,esp
0048A6B7|.51               push ecx
0048A6B8|.B9 04000000      mov ecx,4
0048A6BD|>6A 00            /push 0
0048A6BF|.6A 00            |push 0
0048A6C1|.49               |dec ecx
0048A6C2|.^ 75 F9            \jnz short Asterisk.0048A6BD
0048A6C4|.51               push ecx
0048A6C5|.874D FC            xchg ,ecx
0048A6C8|.53               push ebx
0048A6C9|.56               push esi
0048A6CA|.57               push edi
0048A6CB|.8BF9               mov edi,ecx
0048A6CD|.8955 FC            mov ,edx
0048A6D0|.8B45 FC            mov eax,
0048A6D3|.E8 7C9EF7FF      call Asterisk.00404554
0048A6D8|.33C0               xor eax,eax
0048A6DA|.55               push ebp
0048A6DB|.68 75A84800      push Asterisk.0048A875
0048A6E0|.64:FF30            push dword ptr fs:
0048A6E3|.64:8920            mov dword ptr fs:,esp
0048A6E6|.8BC7               mov eax,edi
0048A6E8|.E8 B799F7FF      call Asterisk.004040A4
0048A6ED|.8B45 FC            mov eax,
0048A6F0|.E8 6F9CF7FF      call Asterisk.00404364
0048A6F5|.8BF0               mov esi,eax
0048A6F7|.85F6               test esi,esi
0048A6F9|.7E 26            jle short Asterisk.0048A721
0048A6FB|.BB 01000000      mov ebx,1
0048A700|>8D4D EC            /lea ecx,
0048A703|.8B45 FC            |mov eax,
0048A706|.0FB64418 FF      |movzx eax,byte ptr ds:
0048A70B|.33D2               |xor edx,edx
0048A70D|.E8 82DCF7FF      |call Asterisk.00408394
0048A712|.8B55 EC            |mov edx,
0048A715|.8D45 F8            |lea eax,
0048A718|.E8 4F9CF7FF      |call Asterisk.0040436C
0048A71D|.43               |inc ebx
0048A71E|.4E               |dec esi
0048A71F|.^ 75 DF            \jnz short Asterisk.0048A700
0048A721|>8B45 F8            mov eax,                   ;用户名的ASCII码连在一起
0048A724|.E8 3B9CF7FF      call Asterisk.00404364            ;取用户名ASCII码的位数
0048A729|.8BF0               mov esi,eax
0048A72B|.85F6               test esi,esi
0048A72D|.7E 2C            jle short Asterisk.0048A75B
0048A72F|.BB 01000000      mov ebx,1
0048A734|>8B45 F8            /mov eax,
0048A737|.E8 289CF7FF      |call Asterisk.00404364             ;还是取用户名ASCII码位数
0048A73C|.2BC3               |sub eax,ebx
0048A73E|.8B55 F8            |mov edx,
0048A741|.8A1402             |mov dl,byte ptr ds:
0048A744|.8D45 E8            |lea eax,
0048A747|.E8 409BF7FF      |call Asterisk.0040428C
0048A74C|.8B55 E8            |mov edx,
0048A74F|.8D45 F4            |lea eax,
0048A752|.E8 159CF7FF      |call Asterisk.0040436C
0048A757|.43               |inc ebx
0048A758|.4E               |dec esi
0048A759|.^ 75 D9            \jnz short Asterisk.0048A734
0048A75B|>8D45 F8            lea eax,
0048A75E|.50               push eax
0048A75F|.B9 04000000      mov ecx,4
0048A764|.BA 01000000      mov edx,1
0048A769|.8B45 F4            mov eax,                   ;用户名ASCII顺序颠倒
0048A76C|.E8 539EF7FF      call Asterisk.004045C4
0048A771|.8D45 F4            lea eax,
0048A774|.50               push eax
0048A775|.B9 04000000      mov ecx,4
0048A77A|.BA 05000000      mov edx,5
0048A77F|.8B45 F4            mov eax,
0048A782|.E8 3D9EF7FF      call Asterisk.004045C4
0048A787|.8B45 F8            mov eax,                   ;取前4位
0048A78A|.E8 D59BF7FF      call Asterisk.00404364
0048A78F|.83F8 04            cmp eax,4
0048A792|.7D 2F            jge short Asterisk.0048A7C3
0048A794|.8B45 F8            mov eax,
0048A797|.E8 C89BF7FF      call Asterisk.00404364
0048A79C|.8BD8               mov ebx,eax
0048A79E|.83FB 03            cmp ebx,3
0048A7A1|.7F 20            jg short Asterisk.0048A7C3
0048A7A3|>8D4D E4            /lea ecx,
0048A7A6|.8BC3               |mov eax,ebx
0048A7A8|.C1E0 02            |shl eax,2
0048A7AB|.33D2               |xor edx,edx
0048A7AD|.E8 E2DBF7FF      |call Asterisk.00408394
0048A7B2|.8B55 E4            |mov edx,
0048A7B5|.8D45 F8            |lea eax,
0048A7B8|.E8 AF9BF7FF      |call Asterisk.0040436C
0048A7BD|.43               |inc ebx
0048A7BE|.83FB 04            |cmp ebx,4
0048A7C1|.^ 75 E0            \jnz short Asterisk.0048A7A3
0048A7C3|>8B45 F4            mov eax,                   ;再取4位
0048A7C6|.E8 999BF7FF      call Asterisk.00404364
0048A7CB|.83F8 04            cmp eax,4
0048A7CE|.7D 2F            jge short Asterisk.0048A7FF
0048A7D0|.8B45 F4            mov eax,
0048A7D3|.E8 8C9BF7FF      call Asterisk.00404364
0048A7D8|.8BD8               mov ebx,eax
0048A7DA|.83FB 03            cmp ebx,3
0048A7DD|.7F 20            jg short Asterisk.0048A7FF
0048A7DF|>8D4D E0            /lea ecx,
0048A7E2|.8BC3               |mov eax,ebx
0048A7E4|.C1E0 02            |shl eax,2
0048A7E7|.33D2               |xor edx,edx
0048A7E9|.E8 A6DBF7FF      |call Asterisk.00408394
0048A7EE|.8B55 E0            |mov edx,
0048A7F1|.8D45 F4            |lea eax,
0048A7F4|.E8 739BF7FF      |call Asterisk.0040436C
0048A7F9|.43               |inc ebx
0048A7FA|.83FB 04            |cmp ebx,4
0048A7FD|.^ 75 E0            \jnz short Asterisk.0048A7DF
0048A7FF|>8D45 F0            lea eax,
0048A802|.BA 8CA84800      mov edx,Asterisk.0048A88C         ;ASCII "Astris58ef88e"
0048A807|.E8 3099F7FF      call Asterisk.0040413C
0048A80C|.8D45 DC            lea eax,
0048A80F|.50               push eax
0048A810|.B9 04000000      mov ecx,4
0048A815|.BA 01000000      mov edx,1
0048A81A|.8B45 F0            mov eax,                   ;上面那个字符串
0048A81D|.E8 A29DF7FF      call Asterisk.004045C4
0048A822|.FF75 DC            push                       ;取那个字符串前4位
0048A825|.68 A4A84800      push Asterisk.0048A8A4
0048A82A|.FF75 F8            push                       ;取用户名ASCII前4位
0048A82D|.8D45 D8            lea eax,
0048A830|.50               push eax
0048A831|.B9 05000000      mov ecx,5
0048A836|.BA 05000000      mov edx,5
0048A83B|.8B45 F0            mov eax,                   ;还是取上面那个字符串
0048A83E|.E8 819DF7FF      call Asterisk.004045C4
0048A843|.FF75 D8            push                      ;取那个字符串接着的5位
0048A846|.68 A4A84800      push Asterisk.0048A8A4
0048A84B|.FF75 F4            push                       ;取用户名ASCII码再来4位
0048A84E|.8BC7               mov eax,edi
0048A850|.BA 06000000      mov edx,6
0048A855|.E8 CA9BF7FF      call Asterisk.00404424
0048A85A|.33C0               xor eax,eax
0048A85C|.5A               pop edx
0048A85D|.59               pop ecx
0048A85E|.59               pop ecx
0048A85F|.64:8910            mov dword ptr fs:,edx
0048A862|.68 7CA84800      push Asterisk.0048A87C
0048A867|>8D45 D8            lea eax,
0048A86A|.BA 0A000000      mov edx,0A
0048A86F|.E8 5498F7FF      call Asterisk.004040C8
0048A874\.C3               retn
------------------------------------------------------------------------------------------------------
算法总结:把用户名转成ASCII码,比如说你的用户名是PYGPYG 算法就是先把PYGPYG变成505947505947 P的ASCII值是50 Y的ASCII值是59 G的ASCII值是47。这样之后再把这串字符串颠倒变成749805749505,分别与软件内置的字符串进行拼接,拼接的方法是:Astris58ef88e这个字符串取分别取前4位Astr,中间5位is58e;用户名ASCII串颠倒后先取前4位,再取中间4位,拼接成Astr-7498is58e-0574这种形式。
    本以为算法都出来了应该就解决了,可是有了一些意外。软件重新启动后提示注册码不合法请重新购买,真是有点好笑啊,算法都解决了怎么还有问题呢?我们接着来分析一下,软件重新启动后提示注册码不合法,这证明软件在启动时读取了注册码,那这个注册码放在哪里呢?先来看最一般的情况,软件是放在注册表中吗?我们在注册表中搜索一下刚才的注册码,找到了,键名为Pass。好,我们OD载入查找一下这个Pass。
    我们找到2处,一处是0048A933,这里是存注册码的地方,另一处是0048BFC6,这里就是软件启动时读取的位置了,我们来看一下这部分的代码:(选取比较有用的地方)
0048C0EC   .E8 D384F7FF      call Asterisk.004045C4
0048C0F1   .8B45 C8            mov eax,dword ptr ss:       ;取用户名前2位
0048C0F4   .BA 9CC34800      mov edx,Asterisk.0048C39C         ;ASCII "As"
0048C0F9   .E8 B283F7FF      call Asterisk.004044B0
0048C0FE      75 4C            jnz short Asterisk.0048C14C         ;比较用户名前两位是不是As
0048C100   .8B45 FC            mov eax,dword ptr ss:
0048C103   .8B80 90030000      mov eax,dword ptr ds:
0048C109   .E8 5682F7FF      call Asterisk.00404364            ;取用户名位数
0048C10E   .83F8 04            cmp eax,4                           ;比较用户名是否为4位
0048C111      75 39            jnz short Asterisk.0048C14C
0048C113   .8B45 FC            mov eax,dword ptr ss:
0048C116   .C680 8C030000 00   mov byte ptr ds:,0
0048C11D   .BA A8C34800      mov edx,Asterisk.0048C3A8         ;ASCII "Asterisk Recovery Genie V1.20"
0048C122   .8B45 FC            mov eax,dword ptr ss:
0048C125   .E8 22A1FBFF      call Asterisk.0044624C
0048C12A   .8B45 FC            mov eax,dword ptr ss:
0048C12D   .8B80 58030000      mov eax,dword ptr ds:
0048C133   .33D2               xor edx,edx
0048C135   .E8 1672FCFF      call Asterisk.00453350
0048C13A   .8B45 FC            mov eax,dword ptr ss:
0048C13D   .8B80 54030000      mov eax,dword ptr ds:
0048C143   .33D2               xor edx,edx
0048C145   .E8 C2C8FCFF      call Asterisk.00458A0C
0048C14A   .EB 3F            jmp short Asterisk.0048C18B
0048C14C   >8B45 FC            mov eax,dword ptr ss:
0048C14F   .C680 8C030000 01   mov byte ptr ds:,1
0048C156   .8B45 FC            mov eax,dword ptr ss:
0048C159   .8B80 1C030000      mov eax,dword ptr ds:
0048C15F   .33D2               xor edx,edx
0048C161   .E8 E26EFCFF      call Asterisk.00453048
0048C166   .8B45 FC            mov eax,dword ptr ss:
0048C169   .8B80 2C030000      mov eax,dword ptr ds:
0048C16F   .33D2               xor edx,edx
0048C171   .E8 D26EFCFF      call Asterisk.00453048
0048C176   .6A 00            push 0                              ; /Arg1 = 00000000
0048C178   .66:8B0D C8C34800   mov cx,word ptr ds:         ; |
0048C17F   .B2 03            mov dl,3                            ; |
0048C181   .B8 D4C34800      mov eax,Asterisk.0048C3D4         ; |ASCII "RegCode is invalid,You must buy it again!"
0048C186   .E8 E1D6F9FF      call Asterisk.0042986C            ; \Asterisk.0042986C
0048C18B   >8B45 FC            mov eax,dword ptr ss:
0048C18E   .80B8 8C030000 00   cmp byte ptr ds:,0
0048C195   .0F84 EE000000      je Asterisk.0048C289
0048C19B   .DD45 E0            fld qword ptr ss:
0048C19E   .DC65 E8            fsub qword ptr ss:
0048C1A1   .DD5D D8            fstp qword ptr ss:
0048C1A4   .9B               wait
0048C1A5   .D905 00C44800      fld dword ptr ds:
0048C1AB   .DC65 D8            fsub qword ptr ss:
0048C1AE   .E8 C968F7FF      call Asterisk.00402A7C
0048C1B3   .8BD8               mov ebx,eax
0048C1B5   .8B45 FC            mov eax,dword ptr ss:
0048C1B8   .8998 98030000      mov dword ptr ds:,ebx
0048C1BE   .85DB               test ebx,ebx
0048C1C0   .7D 0B            jge short Asterisk.0048C1CD
0048C1C2   .8B45 FC            mov eax,dword ptr ss:
0048C1C5   .33D2               xor edx,edx
0048C1C7   .8990 98030000      mov dword ptr ds:,edx
0048C1CD   >68 0CC44800      push Asterisk.0048C40C            ;ASCII "Asterisk Recovery Genie V1.20 (No register, "
0048C1D2   .8B45 FC            mov eax,dword ptr ss:
0048C1D5   .DB80 98030000      fild dword ptr ds:
0048C1DB   .83C4 F4            add esp,-0C
0048C1DE   .DB3C24             fstp tbyte ptr ss:             ; |
0048C1E1   .9B               wait                              ; |
0048C1E2   .8D45 C0            lea eax,dword ptr ss:       ; |
0048C1E5   .E8 2AD5F7FF      call Asterisk.00409714            ; \Asterisk.00409714
0048C1EA   .FF75 C0            push dword ptr ss:
0048C1ED   .68 44C44800      push Asterisk.0048C444            ;ASCII " days left)"
0048C1F2   .8D45 C4            lea eax,dword ptr ss:
0048C1F5   .BA 03000000      mov edx,3
0048C1FA   .E8 2582F7FF      call Asterisk.00404424
0048C1FF   .8B55 C4            mov edx,dword ptr ss:
0048C202   .8B45 FC            mov eax,dword ptr ss:
0048C205   .E8 42A0FBFF      call Asterisk.0044624C
0048C20A   .DD45 D8            fld qword ptr ss:
0048C20D   .D81D 00C44800      fcomp dword ptr ds:
0048C213   .DFE0               fstsw ax
0048C215   .9E               sahf
0048C216   .77 0E            ja short Asterisk.0048C226
0048C218   .DD45 D8            fld qword ptr ss:
0048C21B   .D81D 50C44800      fcomp dword ptr ds:
0048C221   .DFE0               fstsw ax
0048C223   .9E               sahf
0048C224   .73 63            jnb short Asterisk.0048C289
0048C226   >8B45 FC            mov eax,dword ptr ss:
0048C229   .8B80 1C030000      mov eax,dword ptr ds:
0048C22F   .33D2               xor edx,edx
0048C231   .E8 126EFCFF      call Asterisk.00453048
0048C236   .8B45 FC            mov eax,dword ptr ss:
0048C239   .8B80 2C030000      mov eax,dword ptr ds:
0048C23F   .33D2               xor edx,edx
0048C241   .E8 026EFCFF      call Asterisk.00453048
0048C246   .6A 24            push 24
0048C248   .68 54C44800      push Asterisk.0048C454            ;ASCII "Thank you for trying Asterisk Recovery Genie 10 days"
0048C24D   .68 8CC44800      push Asterisk.0048C48C            ;ASCII "Your trial period has expired,Would you like to buy Asterisk Recovery Genie?"
0048C252   .8B45 FC            mov eax,dword ptr ss:
0048C255   .E8 BE08FCFF      call Asterisk.0044CB18
0048C25A   .50               push eax                            ; |hOwner
0048C25B   .E8 E4A6F7FF      call <jmp.&user32.MessageBoxA>      ; \MessageBoxA
0048C260   .83F8 06            cmp eax,6
0048C263   .75 24            jnz short Asterisk.0048C289
0048C265   .6A 05            push 5
0048C267   .68 DCC44800      push Asterisk.0048C4DC
0048C26C   .68 DCC44800      push Asterisk.0048C4DC
0048C271   .68 E0C44800      push Asterisk.0048C4E0            ;ASCII "https://www.qwerks.com/order/buynow.asp?ProductID=7725"
0048C276   .68 18C54800      push Asterisk.0048C518            ;ASCII "open"
0048C27B   .8B45 FC            mov eax,dword ptr ss:
0048C27E   .E8 9508FCFF      call Asterisk.0044CB18
0048C283   .50               push eax                            ; |hWnd
0048C284   .E8 2FC4F9FF      call <jmp.&shell32.ShellExecuteA>   ; \ShellExecuteA
0048C289   >8B55 F8            mov edx,dword ptr ss:
0048C28C   .8B45 FC            mov eax,dword ptr ss:
0048C28F   .E8 20040000      call Asterisk.0048C6B4
0048C294   .8B45 FC            mov eax,dword ptr ss:
0048C297   .8B80 1C030000      mov eax,dword ptr ds:
0048C29D   .8078 6A 00         cmp byte ptr ds:,0
0048C2A1   .74 0B            je short Asterisk.0048C2AE
0048C2A3   .8B55 F8            mov edx,dword ptr ss:
0048C2A6   .8B45 FC            mov eax,dword ptr ss:
0048C2A9   .E8 4EF9FFFF      call Asterisk.0048BBFC
0048C2AE   >33C0               xor eax,eax
0048C2B0   .5A               pop edx
0048C2B1   .59               pop ecx
0048C2B2   .59               pop ecx
0048C2B3   .64:8910            mov dword ptr fs:,edx
0048C2B6   .68 D8C24800      push Asterisk.0048C2D8
0048C2BB   >8D45 C0            lea eax,dword ptr ss:
0048C2BE   .BA 06000000      mov edx,6
0048C2C3   .E8 007EF7FF      call Asterisk.004040C8
0048C2C8   .8D45 F0            lea eax,dword ptr ss:
0048C2CB   .E8 D47DF7FF      call Asterisk.004040A4
0048C2D0   .C3               retn
0048C2D1   .^ E9 4E77F7FF      jmp Asterisk.00403A24
0048C2D6   .^ EB E3            jmp short Asterisk.0048C2BB
0048C2D8   .5F               pop edi
0048C2D9   .5E               pop esi
0048C2DA   .5B               pop ebx
0048C2DB   .8BE5               mov esp,ebp
0048C2DD   .5D               pop ebp
0048C2DE   .C3               retn
-------------------------------------------------------------------------------------------------------
大家看明白了吧,软件要求用户名前2位一定要是As,用户名位数一定要是4位,只要符合这两点,再加上已经弄清算法的注册码就可以了。我们从代码上可以看出用户名这部分符合条件的话就可以跳过像:软件还有10天试用,还剩多少天啊,注册码不合法,这些乱七八糟的东西,软件界面也变成了Asterisk Recovery Genie V1.20而不是Asterisk Recovery Genie V1.20 (No register)的了,打开软件看下ABOUT 也已经提示注册给我们了。这样我们就既解决了一个软件,又学习了破解,好高兴啊!
------------------------------------------------------------------------
【破解总结】   这个软件我觉得真的是教科书版的软件,它的追码,算法,重启验证都很基础,很适合我等菜鸟学习,我强烈建议看我的破文之前先自己拿这个软件练习一下,这个软件真的是学习破解的经典试练品,只有自己动手了才能学好破解,光看的话是很难看懂的,希望大家能自己动手先弄一下。
   最后感谢PYG带领我走进破解学习的大门,欢迎大家有空来PYG看看!
------------------------------------------------------------------------
【版权声明】破文版权归我,转载版权归你。欢迎转载,转载请注明出处,不用注明作者了,我水平比较菜,怕丢人*^_^*

[ 本帖最后由 傻人有傻福 于 2007-12-30 13:46 编辑 ]

dying 发表于 2007-12-30 02:32:40

/:017 刚买了一本加密解密,配合这里的文章,够我深刻理解了~/:018

magic659117852 发表于 2007-12-30 12:35:07

/:001下载软件自己看一下。。。。。感谢分享

hujianshe 发表于 2007-12-30 12:41:38

谢谢斑竹分享啊!

谢谢斑竹分享啊!

magic659117852 发表于 2007-12-30 12:47:33

/:001 /:001

发现字符串追码比较简单。。


0048A9D4|.55            PUSH EBP                                 ;此处下断
0048A9D5|.68 7FAA4800   PUSH Asterisk.0048AA7F
0048A9DA|.64:FF30       PUSH DWORD PTR FS:
0048A9DD|.64:8920       MOV DWORD PTR FS:,ESP
0048A9E0|.8D55 F8       LEA EDX,DWORD PTR SS:
0048A9E3|.8B86 14030000 MOV EAX,DWORD PTR DS:
0048A9E9|.E8 2EB8FBFF   CALL Asterisk.0044621C
0048A9EE|.8B45 F8       MOV EAX,DWORD PTR SS:
0048A9F1|.8D55 FC       LEA EDX,DWORD PTR SS:
0048A9F4|.E8 1FD6F7FF   CALL Asterisk.00408018
0048A9F9|.8B45 FC       MOV EAX,DWORD PTR SS:
0048A9FC|.50            PUSH EAX
0048A9FD|.8D55 EC       LEA EDX,DWORD PTR SS:
0048AA00|.8B86 0C030000 MOV EAX,DWORD PTR DS:
0048AA06|.E8 11B8FBFF   CALL Asterisk.0044621C
0048AA0B|.8B45 EC       MOV EAX,DWORD PTR SS:
0048AA0E|.8D55 F0       LEA EDX,DWORD PTR SS:
0048AA11|.E8 02D6F7FF   CALL Asterisk.00408018
0048AA16|.8B55 F0       MOV EDX,DWORD PTR SS:
0048AA19|.8D4D F4       LEA ECX,DWORD PTR SS:
0048AA1C|.8BC6          MOV EAX,ESI
0048AA1E|.E8 91FCFFFF   CALL Asterisk.0048A6B4
0048AA23|.8B55 F4       MOV EDX,DWORD PTR SS:
0048AA26|.58            POP EAX                                  ;F8到这里就比较真假码了

magic659117852 发表于 2007-12-30 12:58:01

/:L/:L

又发现被忽悠了/:L

flyjmu 发表于 2007-12-30 13:43:31

软件的加密做的确实比较简单 但很适合像我这样的菜鸟拿来做练习用
感谢楼主分享:loveliness:

magic659117852 发表于 2007-12-30 14:27:39

发现菜鸟总是喜欢用字符串来解决问题/:011

/:001虽然这个软件字符串可以解决。。。

学习楼主的方法/:good   /:good

剑客之道 发表于 2008-1-15 21:04:36

我输入的名字“xyjk888”
我的注册码"Astr-8383is58e-83B6"
通过查找字符串完全可以找到注册码的啊^_^

yanggh1963 发表于 2008-1-16 10:32:29

谢谢!!!:handshake :handshake
页: [1] 2
查看完整版本: Asterisk Recovery Genie追码+算法+注册分析BY傻人有傻福