0:02 2005-2-24
目标:FlashSaverDIY.exe
版本V1.2
下载地址:中国共享软件注册中心
排行榜位于第一位,值得推荐!!!!!
未注册,有很多限制,例如会在生成的屏保文件中生成“由未注册版……制作”字样。
因为追注册算法让我伤脑筋,改为爆破,安慰下自已,希望论坛的朋友能追出注册算法。
在《流行论坛》看到了它的不完美爆破,所以将这破文发表出来,(本来是拿不出手的呀。)
ASPack 2.12 -> Alexey Solodovnikov
OEP:00499448
aspackdie.exe轻松脱壳,连修复输入表的工作都免了。
再扫描,发现:
Borland Delphi 6.0 - 7.0
输入假码,则要求,重启才能验证。
难在不知如何才能断下来!!!!
只好爆破了。
因为软件会要求重启验证,但是不知在那里读取注册信息。也不想找了。
工具:Peid.exe,Aspackdie.exe,C32Asm.exe,OD
用Aspackdie脱壳后,
用C32Asm.exe查找字串:
找到:Flash屏保DIY 1.2 [注册用户:]
Call ::00498980-> PUSH 498A1C
这里找到一些关键代码:
::00498923:: 00FF ADD BH,BH 在这里下断看看
::00498925:: FF ???
::00498926:: FF ???
::00498927:: FF09 DEC DWORD PTR [ECX]
::00498929:: 0000 ADD [EAX],AL
::0049892B:: 005C48 65 ADD [EAX+ECX*2+65],BL
::0049892F:: 6C INS BYTE PTR ES:[EDI],DX
::00498930:: 70 2E JO SHORT 00498960 \:JMPDOWN
::00498932:: 6368 6D ARPL [EAX+6D],EBP
::00498935:: 0000 ADD [EAX],AL
::00498937:: 00CC ADD AH,CL
::00498939:: E1 CA LOOPDE SHORT 00498905 \:JMPUP
::0049893B:: BE 00000000 MOV ESI,0
::00498940:: B0 EF MOV AL,EF
::00498942:: D6 SALC
::00498943:: FA CLI
::00498944:: CE INTO
::00498945:: C4BCFE 2848656C LES EDI,[ESI+EDI*8+6C654828]
::0049894C:: 70 2E JO SHORT 0049897C \:JMPDOWN
::0049894E:: 6368 6D ARPL [EAX+6D],EBP
::00498951:: 29B2 BBB4E6D4 SUB [EDX+D4E6B4BB],ESI
::00498957:: DAA1 A3000055 FISUB DWORD PTR [ECX+550000A3]
::0049895D:: 8BEC MOV EBP,ESP
::0049895F:: 6A 00 PUSH 0
::00498961:: 6A 00 PUSH 0
::00498963:: 6A 00 PUSH 0
::00498965:: 53 PUSH EBX
::00498966:: 8BD8 MOV EBX,EAX
::00498968:: 33C0 XOR EAX,EAX
::0049896A:: 55 PUSH EBP
::0049896B:: 68 088A4900 PUSH 498A08 \->: 槊蚌?脎?]???x1B
::00498970:: 64:FF30 PUSH DWORD PTR FS:[EAX]
::00498973:: 64:8920 MOV FS:[EAX],ESP
::00498976:: A1 ACC54900 MOV EAX,[49C5AC]
::0049897B:: 8038 00 CMP BYTE PTR [EAX],0 改为8038 01就是注册版,最好的办法是:[49C5AC]指向的地址中写入01,就不会有任何未破解的地方! 那么这里就是关键的标志的比较啦!
::0049897E:: 74 2D JE SHORT 004989AD \:JMPDOWN 这可是关键跳转呀!!
::00498980:: 68 1C8A4900 PUSH 498A1C \->: Flash屏保DIY 1.2 [注册用户:
::00498985:: A1 DCCA4900 MOV EAX,[49CADC]
::0049898A:: FF30 PUSH DWORD PTR [EAX]
::0049898C:: 68 408A4900 PUSH 498A40 \->: ]
::00498991:: 8D45 FC LEA EAX,[EBP-4]
::00498994:: BA 03000000 MOV EDX,3
::00498999:: E8 32BBF6FF CALL 004044D0 \:JMPUP
::0049899E:: 8B55 FC MOV EDX,[EBP-4]
::004989A1:: A1 74E34900 MOV EAX,[49E374]
::004989A6:: E8 317BFBFF CALL 004504DC \:JMPUP
::004989AB:: EB 0F JMP SHORT 004989BC \:JMPDOWN
::004989AD:: BA 4C8A4900 MOV EDX,498A4C \:BYJMP JmpBy:0049897E, \->: Flash屏保DIY 1.2 [未注册]
又看这里:
::00495D54:: 55 PUSH EBP
::00495D55:: 68 325E4900 PUSH 495E32 \->: ?荟?脎?]?
::00495D5A:: 64:FF30 PUSH DWORD PTR FS:[EAX]
::00495D5D:: 64:8920 MOV FS:[EAX],ESP
::00495D60:: 8D55 FC LEA EDX,[EBP-4]
::00495D63:: 8B83 04030000 MOV EAX,[EBX+304]
::00495D69:: E8 3EA7FBFF CALL 004504AC \:JMPUP
::00495D6E:: 837D FC 00 CMP DWORD PTR [EBP-4],0
::00495D72:: 0F84 86000000 JE 00495DFE \:JMPDOWN
::00495D78:: 8D55 F8 LEA EDX,[EBP-8]
::00495D7B:: 8B83 0C030000 MOV EAX,[EBX+30C]
::00495D81:: E8 26A7FBFF CALL 004504AC \:JMPUP
::00495D86:: 837D F8 00 CMP DWORD PTR [EBP-8],0
::00495D8A:: 74 72 JE SHORT 00495DFE \:JMPDOWN
::00495D8C:: 8D55 F4 LEA EDX,[EBP-C]
::00495D8F:: 8B83 10030000 MOV EAX,[EBX+310]
::00495D95:: E8 12A7FBFF CALL 004504AC \:JMPUP
::00495D9A:: 837D F4 00 CMP DWORD PTR [EBP-C],0
::00495D9E:: 74 5E JE SHORT 00495DFE \:JMPDOWN
::00495DA0:: 6A 40 PUSH 40
::00495DA2:: 68 405E4900 PUSH 495E40 \->: 提示
::00495DA7:: 68 485E4900 PUSH 495E48 \->: 感谢您注册Flash屏保DIY,请重新启动Flash屏保DIY,来确认注册成功与否。
::00495DAC:: 8BC3 MOV EAX,EBX
::00495DAE:: E8 190FFCFF CALL 00456CCC \:JMPUP
::00495DB3:: 50 PUSH EAX
::00495DB4:: E8 BB0FF7FF CALL 00406D74 \:JMPUP
::00495DB9:: 8D55 F0 LEA EDX,[EBP-10]
::00495DBC:: 8B83 10030000 MOV EAX,[EBX+310]
::00495DC2:: E8 E5A6FBFF CALL 004504AC \:JMPUP
::00495DC7:: 8B45 F0 MOV EAX,[EBP-10]
::00495DCA:: 50 PUSH EAX
::00495DCB:: 8D55 EC LEA EDX,[EBP-14]
::00495DCE:: 8B83 0C030000 MOV EAX,[EBX+30C]
::00495DD4:: E8 D3A6FBFF CALL 004504AC \:JMPUP
::00495DD9:: 8B45 EC MOV EAX,[EBP-14]
::00495DDC:: 50 PUSH EAX
::00495DDD:: 8D55 E8 LEA EDX,[EBP-18]
::00495DE0:: 8B83 04030000 MOV EAX,[EBX+304]
::00495DE6:: E8 C1A6FBFF CALL 004504AC \:JMPUP
::00495DEB:: 8B45 E8 MOV EAX,[EBP-18]
::00495DEE:: 5A POP EDX
::00495DEF:: 59 POP ECX
::00495DF0:: E8 D7F8FFFF CALL 004956CC \:JMPUP
::00495DF5:: 8BC3 MOV EAX,EBX
::00495DF7:: E8 DC74FDFF CALL 0046D2D8 \:JMPUP
::00495DFC:: EB 19 JMP SHORT 00495E17 \:JMPDOWN
::00495DFE:: 6A 40 PUSH 40 \:BYJMP JmpBy:00495D72,00495D8A,00495D9E,
::00495E00:: 68 405E4900 PUSH 495E40 \->: 提示
::00495E05:: 68 905E4900 PUSH 495E90 \->: 请将注册信息填写完整。
::00495020:: 68 BE514900 PUSH 4951BE \:BYJMP JmpBy:00494FB9, \->: 檐x0D轹?脒^[?]???x1F
::00495025:: 64:FF30 PUSH DWORD PTR FS:[EAX]
::00495028:: 64:8920 MOV DWORD PTR FS:[EAX],ESP \:BYJMP JmpBy:00494FC1,
::0049502B:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC]
::00495030:: 8038 00 CMP BYTE PTR [EAX],0 改为CMP BYTE PTR [EAX],1就是注册版
::00495033:: 0F84 50010000 JE 00495189 \:JMPDOWN 跳到未注册版不能检测新版本
追注册码有点困难,主要是不知在那里才能断下来!!!
修改这两处,虽然显示为注册版,也可以上网升级,但是生成屏保文件,依然会同时生成:由非注册版制作之类的东东,太不好看。
不过我们已经发现它的注册标志在那里了。在OD中用“内存读取”断点,可以发现:
DWORD PTR [49C5AC]里面会藏着标志值所在的地址0049B174,在写入时修改一下,让它变为1,那么不要输入任何注册信息,也会成为注册版!!!
我们用C32asm.exe搜索一下字串 [49C5AC] 找到这么多!!!
::0047B61A:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC] 这里也会效验注册标志吗?
::0049502B:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC] 未注册不能在网上升级的限制
::0049775E:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC] 注册码不正确,就会在这里将标志赋值0
::004977D4:: 8B15 ACC54900 MOV EDX,DWORD PTR [49C5AC] \:BYJMP JmpBy:004977D0, 注册码正确,就会到这里,这里将使注册标志值为1
::004983E5:: 8B15 ACC54900 MOV EDX,DWORD PTR [49C5AC] 注册成功,生成的屏保文件,才不会有“由未注册版软件制作”字样
::00498976:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC] 注册成功Form的Caption会改为:注册版
我们来修改:
1,
::0047B61A:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC]
::0047B61F:: 8A00 MOV AL,BYTE PTR [EAX]
修改为:
::0047B61A:: A1 ACC54900 MOV EAX,[49C5AC]
::0047B61F:: B0 01 MOV AL,1 我们强行给AL赋值1
2,
::0049775E:: A1 ACC54900 MOV EAX,DWORD PTR [49C5AC]
::00497763:: C600 00 MOV BYTE PTR [EAX],0 同样,Ptr[EAX]指向0049B174,这里面才会是真正的标志值,怎能被赋值0呢
修改为:
::0049775E:: A1 ACC54900 MOV EAX,[49C5AC]
::00497763:: C600 01 MOV BYTE PTR [EAX],1 我们人为改它为1
3,
::004983E5:: 8B15 ACC54900 MOV EDX,DWORD PTR [49C5AC]
::004983EB:: 8A12 MOV DL,BYTE PTR [EDX] Ptr[EDX]中得到标志值,可能它是用来在生成的屏保文件中加上“由未注册版软件制作”的作用
修改为:
::004983E5:: 8B15 ACC54900 MOV EDX,[49C5AC]
::004983EB:: B2 01 MOV DL,1 当然要改为1
因为软件在安装时,已获取你的用户名,现在不用输入任何信息,你已是注册用户了!
Cracked by 网络情缘
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课