飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2745|回复: 3

[原创] 菜鸟算法7

[复制链接]

该用户从未签到

发表于 2007-6-9 06:02:10 | 显示全部楼层 |阅读模式
【文章标题】: 菜鸟算法7
【文章作者】: 千里之外
【作者邮箱】: 1986.1024@163.com
【作者主页】: 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:[EAX]
  0048C708  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
  0048C70B  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
  0048C70E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0048C711  |.  8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
  0048C717  |.  E8 D87EFAFF   CALL CrackMe1.004345F4
  0048C71C  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0048C71F  |.  E8 3877F7FF   CALL CrackMe1.00403E5C
  0048C724  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
  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:[EBP-8]
  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:[48EBD0]
  0048C74F  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0048C751  |.  E8 E279FCFF   CALL CrackMe1.00454138
  0048C756  |.  E9 D2000000   JMP CrackMe1.0048C82D
  0048C75B  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
  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:[EBP-10],EAX
  0048C76A  |.  BF 01000000   MOV EDI,1                                ;  edi=1 下面是对用户名的每位16进制ASCII进行一系列运算
  0048C76F  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]            ;  用户名 hack58
  0048C772  |.  0FB67438 FF   |MOVZX ESI,BYTE PTR DS:[EAX+EDI-1]       ;  用户名第一位 h  68(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                               ;  ECX  sar 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:[EDI+EBX]          ;  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:[EBP-14]           ;  这是每位运算的最终结果 取其ASICC字符 为 FMFMXJ
  0048C7C2  |.  8BD3          |MOV EDX,EBX
  0048C7C4  |.  E8 7B78F7FF   |CALL CrackMe1.00404044
  0048C7C9  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]
  0048C7CC  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
  0048C7CF  |.  8B4D F4       |MOV ECX,DWORD PTR SS:[EBP-C]
  0048C7D2  |.  E8 9179F7FF   |CALL CrackMe1.00404168                  ;  将计算结果转化为ASCII字符并到序连接
  0048C7D7  |.  47            |INC EDI
  0048C7D8  |.  FF4D F0       |DEC DWORD PTR SS:[EBP-10]
  0048C7DB  |.^ 75 92         \JNZ SHORT CrackMe1.0048C76F
  0048C7DD  |>  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
  0048C7E0  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0048C7E3  |.  8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
  0048C7E9  |.  E8 067EFAFF   CALL CrackMe1.004345F4
  0048C7EE  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]            ;  假码 123456789
  0048C7F1  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  真码 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:[48EBD0]
  0048C80C  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  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:[48EBD0]
  0048C826  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  
  
--------------------------------------------------------------------------------
【经验总结】
  1.用户名位数在5到16之间
  2.对用户名的每位16进制ASCII进行一系列运算 分析见上面
  3.例如 用户名 hack58 注册码 FMFMXJ
  
--------------------------------------------------------------------------------
【版权声明】:  谢谢 fonge版主的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安

                                                       2007年06月09日 6:01:48

CrackMe1[1].0.rar

273.08 KB, 下载次数: 29, 下载积分: 飘云币 -2 枚

PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-4 22:08
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2007-6-9 08:11:42 | 显示全部楼层
    楼主厉害,收藏回家学习
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-6-9 14:43:39 | 显示全部楼层
    向楼主学习,呵呵
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-7-7 16:10:21 | 显示全部楼层
    厉害,算法真不错,学习了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表