PD-UnDelete 2.0 简单分析(标志位爆破比较容易)
HomePage:http://www.livepim.com/pd-undelete/我们多拿一些国外的注册程序做分析,旨在分析其加密的优势和不足。这个程序比较简单,无壳,适合新手练手。
入门阶段,贵在坚持。我争取每周都分析一款软件,有时间的话就分析一下算法。我分析的文章大都分析的比较匆促,大家如有问题,跟帖即可。
使用OD的插件下万能断点即可中断,然后跟进算法CALL(这个哪是算法CALL你得猜一下哈)
TMD 今天人品比较好 随便输入了一个KEY 居然注册成功了 /:017
Name:Nisy
Code:ABDK-DFAE-FDSF-ZDFE-LJOI
再试一个 又成功了 /:L
Code:DADF-FEFD-FEXD-GTDS-DSFE
简单分析过程如下:
0042E034|.50 PUSH EAX ;上边是取用户注册信息
0042E035|.68 9C165600 PUSH PDUnDel.0056169C ;容B
0042E03A|.8B15 9C165600 MOV EDX,DWORD PTR DS: ;PDUnDel.005550B4
0042E040|.FF52 0C CALL DWORD PTR DS: ;PDUnDel.0046A154//这里是关键CALL
0042E043|.83C4 0C ADD ESP,0C
0042E046|.33C9 XOR ECX,ECX
0042E048|.8AC8 MOV CL,AL
0042E04A|.83F9 01 CMP ECX,1
0042E04D|.1BC0 SBB EAX,EAX
0042E04F|.F7D8 NEG EAX
0042E051|.50 PUSH EAX
0042E052|.FF4D EC DEC DWORD PTR SS:
0042E055|.8D45 F4 LEA EAX,DWORD PTR SS:
0042E058|.BA 02000000 MOV EDX,2
0042E05D|.E8 F67A1100 CALL PDUnDel.00545B58
0042E062|.FF4D EC DEC DWORD PTR SS: ; |
0042E065|.8D45 F8 LEA EAX,DWORD PTR SS: ; |
0042E068|.BA 02000000 MOV EDX,2 ; |
0042E06D|.E8 E67A1100 CALL PDUnDel.00545B58 ; \PDUnDel.00545B58
0042E072|.59 POP ECX
0042E073|.84C9 TEST CL,CL
0042E075|.74 26 JE SHORT PDUnDel.0042E09D ;注册时的跳转
0042E077|.6A 10 PUSH 10
0042E079|.68 E3515500 PUSH PDUnDel.005551E3 ;Information
0042E07E|.68 9F515500 PUSH PDUnDel.0055519F ;Invalid registration code, please contact us at [email protected]
跟进关键CALL :
0046A154/.55 PUSH EBP
0046A155|.8BEC MOV EBP,ESP
0046A157|.83C4 E0 ADD ESP,-20
0046A15A|.837D 10 00 CMP DWORD PTR SS:,0
0046A15E|.74 08 JE SHORT PDUnDel.0046A168
0046A160|.8B45 10 MOV EAX,DWORD PTR SS:
0046A163|.8038 00 CMP BYTE PTR DS:,0
0046A166|.75 04 JNZ SHORT PDUnDel.0046A16C
0046A168|>33C0 XOR EAX,EAX
0046A16A|.EB 59 JMP SHORT PDUnDel.0046A1C5
0046A16C|>8D55 E0 LEA EDX,DWORD PTR SS:
0046A16F|.85D2 TEST EDX,EDX
0046A171|.74 1B JE SHORT PDUnDel.0046A18E
0046A173|.837D 10 00 CMP DWORD PTR SS:,0
0046A177|.74 15 JE SHORT PDUnDel.0046A18E
0046A179|.6A 1F PUSH 1F ; /Arg3 = 0000001F
0046A17B|.FF75 10 PUSH DWORD PTR SS: ; |Arg2
0046A17E|.8D4D E0 LEA ECX,DWORD PTR SS: ; |
0046A181|.51 PUSH ECX ; |Arg1
0046A182|.E8 01D10C00 CALL PDUnDel.00537288 ; \PDUnDel.00537288
0046A187|.83C4 0C ADD ESP,0C
0046A18A|.C645 FF 00 MOV BYTE PTR SS:,0
0046A18E|>8D45 E0 LEA EAX,DWORD PTR SS:
0046A191|.50 PUSH EAX
0046A192|.68 AFB05500 PUSH PDUnDel.0055B0AF
0046A197|.8B55 08 MOV EDX,DWORD PTR SS:
0046A19A|.52 PUSH EDX
0046A19B|.8B0A MOV ECX,DWORD PTR DS:
0046A19D|.FF51 20 CALL DWORD PTR DS: ;这里是算法CALL了哦 ,跟进去就可以找到KEY的格式了
0046A1A0|.83C4 0C ADD ESP,0C
0046A1A3|.84C0 TEST AL,AL
0046A1A5|.75 04 JNZ SHORT PDUnDel.0046A1AB
0046A1A7|.33C0 XOR EAX,EAX
0046A1A9|.EB 1A JMP SHORT PDUnDel.0046A1C5
进到算法CALL 大家自己分析一下算法好了 整理破文确实比较累人 O(∩_∩)O~
问题一:程序的算法是如何设计的,为何我能随意输入注册成功?
问题二:程序的KEY保存到哪里?是如何加密保存的?
**** Hidden Message ***** 高亮了,分就不给你加了哈/:017 会不会是Demo版的啊,要不咋会随便输就会成功? N大的文章要仔细品尝 学习一下N老大的文章 随意注册码就能成功?不会吧/:L 原帖由 破解爱好者 于 2010-4-23 12:50 发表 https://www.chinapyg.com/images/common/back.gif
随意注册码就能成功?不会吧/:L
你自己跟一下就知道是怎么回事了/:018 支持一下校长! 哈哈,看看是咋回事
页:
[1]