千里之外 发表于 2007-6-9 06:02:10

菜鸟算法7

【文章标题】: 菜鸟算法7
【文章作者】: 千里之外
【作者邮箱】: [email protected]
【作者主页】: www.wm5.net.cn
【作者QQ号】: 506398911
【软件名称】: 一只老虎CRACKME1
【加壳方式】: UPX
【保护方式】: 注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: PEID OD
【作者声明】:谢谢 fonge版主的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安
--------------------------------------------------------------------------------
【详细过程】

大家好 我是千里之外 这是我从黑基论坛上下载的一个CRACKME 算法很简单 只是在对用户名做一些简单算术和逻辑运算

很适合我等菜鸟 呵呵 希望对大家有所帮助




0048C6FF|.55            PUSH EBP
0048C700|.68 58C84800   PUSH CrackMe1.0048C858
0048C705|.64:FF30       PUSH DWORD PTR FS:
0048C708|.64:8920       MOV DWORD PTR FS:,ESP
0048C70B|.8D55 F8       LEA EDX,DWORD PTR SS:
0048C70E|.8B45 FC       MOV EAX,DWORD PTR SS:
0048C711|.8B80 04030000 MOV EAX,DWORD PTR DS:
0048C717|.E8 D87EFAFF   CALL CrackMe1.004345F4
0048C71C|.8D45 F4       LEA EAX,DWORD PTR SS:
0048C71F|.E8 3877F7FF   CALL CrackMe1.00403E5C
0048C724|.8B45 F8       MOV EAX,DWORD PTR SS:
0048C727|.E8 F079F7FF   CALL CrackMe1.0040411C
0048C72C|.83F8 0F       CMP EAX,0F                               ;用户名位数小于16
0048C72F|.7F 0D         JG SHORT CrackMe1.0048C73E
0048C731|.8B45 F8       MOV EAX,DWORD PTR SS:
0048C734|.E8 E379F7FF   CALL CrackMe1.0040411C
0048C739|.83F8 05       CMP EAX,5                              ;用户名位数大于5
0048C73C|.7D 1D         JGE SHORT CrackMe1.0048C75B
0048C73E|>6A 40         PUSH 40
0048C740|.B9 68C84800   MOV ECX,CrackMe1.0048C868                ;错误
0048C745|.BA 70C84800   MOV EDX,CrackMe1.0048C870                ;注册码错误!
0048C74A|.A1 D0EB4800   MOV EAX,DWORD PTR DS:
0048C74F|.8B00          MOV EAX,DWORD PTR DS:
0048C751|.E8 E279FCFF   CALL CrackMe1.00454138
0048C756|.E9 D2000000   JMP CrackMe1.0048C82D
0048C75B|>8B45 F8       MOV EAX,DWORD PTR SS:
0048C75E|.E8 B979F7FF   CALL CrackMe1.0040411C
0048C763|.85C0          TEST EAX,EAX
0048C765|.7E 76         JLE SHORT CrackMe1.0048C7DD
0048C767|.8945 F0       MOV DWORD PTR SS:,EAX
0048C76A|.BF 01000000   MOV EDI,1                              ;edi=1 下面是对用户名的每位16进制ASCII进行一系列运算
0048C76F|>8B45 F8       /MOV EAX,DWORD PTR SS:            ;用户名 hack58
0048C772|.0FB67438 FF   |MOVZX ESI,BYTE PTR DS:       ;用户名第一位 h68(16进制)
0048C777|.8BC6          |MOV EAX,ESI                           ;eax=68
0048C779|.B9 17000000   |MOV ECX,17                              ;ecx=17
0048C77E|.99            |CDQ
0048C77F|.F7F9          |IDIV ECX                              ;eax/ecx=68/17 余数c 送DL
0048C781|.8BCA          |MOV ECX,EDX                           ;ECX=C
0048C783|.8BC6          |MOV EAX,ESI                           ;EAX=68
0048C785|.BB 11000000   |MOV EBX,11                              ;EBX=11
0048C78A|.99            |CDQ
0048C78B|.F7FB          |IDIV EBX                              ;EAX/EBX=68/11 余数2送DL
0048C78D|.8BDA          |MOV EBX,EDX                           ;EBX=2
0048C78F|.0FAFD9      |IMUL EBX,ECX                            ;EBX=2*C=18
0048C792|.8BCB          |MOV ECX,EBX                           ;ECX=18
0048C794|.8BD9          |MOV EBX,ECX                           ;EBX=18
0048C796|.8BCE          |MOV ECX,ESI                           ;ECX=68
0048C798|.85C9          |TEST ECX,ECX
0048C79A|.79 03         |JNS SHORT CrackMe1.0048C79F
0048C79C|.83C1 0F       |ADD ECX,0F
0048C79F|>C1F9 04       |SAR ECX,4                               ;ECXsar 4=68 sar 4=6
0048C7A2|.8BC3          |MOV EAX,EBX                           ;EAX=18
0048C7A4|.C1E0 02       |SHL EAX,2                               ;EAX SHL 3=18 shl 3=60
0048C7A7|.83C1 05       |ADD ECX,5                               ;ECX=5+6=B
0048C7AA|.99            |CDQ
0048C7AB|.F7F9          |IDIV ECX                              ;EAX=60/b=8
0048C7AD|.8BD8          |MOV EBX,EAX                           ;EBX=8
0048C7AF|.8D041F      |LEA EAX,DWORD PTR DS:          ;EAX=1+8=9
0048C7B2|.B9 1A000000   |MOV ECX,1A                              ;ECX=1A
0048C7B7|.99            |CDQ
0048C7B8|.F7F9          |IDIV ECX                              ;EAX/ECX=9/1A 余数送DL=9
0048C7BA|.83C2 41       |ADD EDX,41                              ;EDX=9+41=4A
0048C7BD|.8BDA          |MOV EBX,EDX                           ;4a 58 4d 46 4d 46
0048C7BF|.8D45 EC       |LEA EAX,DWORD PTR SS:         ;这是每位运算的最终结果 取其ASICC字符 为 FMFMXJ
0048C7C2|.8BD3          |MOV EDX,EBX
0048C7C4|.E8 7B78F7FF   |CALL CrackMe1.00404044
0048C7C9|.8B55 EC       |MOV EDX,DWORD PTR SS:
0048C7CC|.8D45 F4       |LEA EAX,DWORD PTR SS:
0048C7CF|.8B4D F4       |MOV ECX,DWORD PTR SS:
0048C7D2|.E8 9179F7FF   |CALL CrackMe1.00404168                  ;将计算结果转化为ASCII字符并到序连接
0048C7D7|.47            |INC EDI
0048C7D8|.FF4D F0       |DEC DWORD PTR SS:
0048C7DB|.^ 75 92         \JNZ SHORT CrackMe1.0048C76F
0048C7DD|>8D55 E8       LEA EDX,DWORD PTR SS:
0048C7E0|.8B45 FC       MOV EAX,DWORD PTR SS:
0048C7E3|.8B80 08030000 MOV EAX,DWORD PTR DS:
0048C7E9|.E8 067EFAFF   CALL CrackMe1.004345F4
0048C7EE|.8B45 E8       MOV EAX,DWORD PTR SS:            ;假码 123456789
0048C7F1|.8B55 F4       MOV EDX,DWORD PTR SS:             ;真码 FMFMXJ
0048C7F4|.E8 6F7AF7FF   CALL CrackMe1.00404268
0048C7F9|.75 1A         JNZ SHORT CrackMe1.0048C815
0048C7FB|.6A 40         PUSH 40
0048C7FD|.B9 80C84800   MOV ECX,CrackMe1.0048C880                ;恭喜你
0048C802|.BA 88C84800   MOV EDX,CrackMe1.0048C888                ;注册成功!
0048C807|.A1 D0EB4800   MOV EAX,DWORD PTR DS:
0048C80C|.8B00          MOV EAX,DWORD PTR DS:
0048C80E|.E8 2579FCFF   CALL CrackMe1.00454138
0048C813|.EB 18         JMP SHORT CrackMe1.0048C82D
0048C815|>6A 40         PUSH 40
0048C817|.B9 68C84800   MOV ECX,CrackMe1.0048C868                ;错误
0048C81C|.BA 70C84800   MOV EDX,CrackMe1.0048C870                ;注册码错误!
0048C821|.A1 D0EB4800   MOV EAX,DWORD PTR DS:
0048C826|.8B00          MOV EAX,DWORD PTR DS:


--------------------------------------------------------------------------------
【经验总结】
1.用户名位数在5到16之间
2.对用户名的每位16进制ASCII进行一系列运算 分析见上面
3.例如 用户名 hack58 注册码 FMFMXJ

--------------------------------------------------------------------------------
【版权声明】:谢谢 fonge版主的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安

                                                       2007年06月09日 6:01:48

bhcjl 发表于 2007-6-9 08:11:42

楼主厉害,收藏回家学习

yingfeng 发表于 2007-6-9 14:43:39

向楼主学习,呵呵

花满楼 发表于 2007-7-7 16:10:21

厉害,算法真不错,学习了
页: [1]
查看完整版本: 菜鸟算法7