首页
社区
课程
招聘
菜鸟教程之万能断点追玛[原创]
发表于: 2007-1-15 13:09 7199

菜鸟教程之万能断点追玛[原创]

2007-1-15 13:09
7199

【文章标题】: 菜鸟教程之万能断点追玛
【文章作者】: 妈妈不让说
【作者邮箱】: 妈妈不让说
【作者主页】: 妈妈不让说
【作者QQ号】: 妈妈不让说
【软件名称】: crackme
【下载地址】: 教程打包下载
【加壳方式】: 无壳
【保护方式】: 无保护
【编写语言】: VB
【使用工具】: OD任何版本
【操作平台】: Windows Sp1
【作者声明】: crackme区人气不高,特此来灌灌水.顺便提高骗技!另外失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  注:此教程只适合跟我一样的菜鸟朋友学习,高手请勿见笑.适合明码比较的追玛教程!
  
  crackme区人气不高,特此来灌灌水.
  
  依然还是菜鸟学习篇,高手依然飘过.
  
  例1(VB程序):
  打开crackme,采用的是用户名+注册码的方式.并查壳,Microsoft Visual Basic 5.0 / 6.0
  
  
  OD载入
  
  00401228 >  68 540F4100     PUSH crackme.00410F54           //停在这里
  0040122D    E8 EEFFFFFF     CALL <JMP.&MSVBVM60.#100>
  00401232    0000            ADD BYTE PTR DS:[EAX],AL
  00401234    0000            ADD BYTE PTR DS:[EAX],AL
  00401236    0000            ADD BYTE PTR DS:[EAX],AL
  00401238    3000            XOR BYTE PTR DS:[EAX],AL
  0040123A    0000            ADD BYTE PTR DS:[EAX],AL
  0040123C    3800            CMP BYTE PTR DS:[EAX],AL
  0040123E    0000            ADD BYTE PTR DS:[EAX],AL
  00401240    0000            ADD BYTE PTR DS:[EAX],AL
  00401242    0000            ADD BYTE PTR DS:[EAX],AL
  00401244  ^ E2 BD           LOOPD SHORT crackme.00401203
  00401246    E3 30           JECXZ SHORT crackme.00401278
  00401248    2A34D5 11A375BB SUB DH,BYTE PTR DS:[EDX*8+BB75A311]
  0040124F    0ADF            OR BL,BH
  00401251    97              XCHG EAX,EDI
  00401252    75 47           JNZ SHORT crackme.0040129B
  00401254    0000            ADD BYTE PTR DS:[EAX],AL
  
  
  F9运行,也许你问我是不是有病,其实是告诉大家另外一个方法追玛而已,转到正题```
  
  
  这个时候 点crackme上的注册 姓名输入 kanxue 注册玛输入 5201314 这个时候千万别点确定!
  
  在代码区点右键,查看----选模块USER32就到了USER32中如下代码段
  
  
  77D11000 >  44              INC ESP
  77D11001    0C F6           OR AL,0F6
  77D11003    77 6B           JA SHORT <&ntdll.RtlActivateActivationCo>
  77D11005    11F5            ADC EBP,ESI
  77D11007    77 08           JA SHORT USER32.77D11011
  77D11009    30FC            XOR AH,BH
  77D1100B  - 77 A1           JA SHORT USER32.77D10FAE
  77D1100D    16              PUSH SS
  77D1100E    F5              CMC
  77D1100F  - 77 FE           JA SHORT USER32.77D1100F
  77D11011    4F              DEC EDI
  77D11012    F677 16         DIV BYTE PTR DS:[EDI+16]
  77D11015    12F6            ADC DH,DH
  77D11017  - 77 CF           JA SHORT USER32.77D10FE8
  77D11019    0D F777CEFC     OR EAX,FCCE77F7
  77D1101E    F677 4C         DIV BYTE PTR DS:[EDI+4C]
  
  
  在代码区点右键,查找----二进制字串,输入:F3 A5 8B C8 83 E1 03 F3 A4 E8,点确定就来到了我门的万能断点的代码
  
  
  
  77D29303    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>   //这个就是万能断点代码拉^-^
  77D29305    8BC8            MOV ECX,EAX
  77D29307    83E1 03         AND ECX,3
  77D2930A    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
  77D2930C    E8 04F9FFFF     CALL USER32.77D28C15
  77D29311    5F              POP EDI
  77D29312    5E              POP ESI
  
  
  
  
  在这里F2或双击下断点后,点确定!按F9观察寄存器中的值直到第一次看到我们输入的假码《我这里输入的是5201314》就停止按F9,寄存器如下:
  
  EAX 00000007
  ECX 00000001
  EDX 00140608
  EBX 00000007
  ESP 0012F074
  EBP 0012F084
  ESI 001512C0 ASCII "5201314"
  EDI 00D521D0
  EIP 77D29303 USER32.77D29303
  
  我门在出现假码的下一行,点右键,选数据窗口中跟随,来到数据窗口如下处
  
  
  00D521D0  00000000
  
  在此行点右键,选断点----内存访问;F9运行,中断
  
  7340BC99    84C0            TEST AL,AL            //断在这里
  7340BC9B    74 0E           JE SHORT MSVBVM60.7340BCAB
  7340BC9D    3C 1E           CMP AL,1E
  7340BC9F    74 04           JE SHORT MSVBVM60.7340BCA5
  7340BCA1    3C 1F           CMP AL,1F
  7340BCA3    75 03           JNZ SHORT MSVBVM60.7340BCA8
  7340BCA5    C601 26         MOV BYTE PTR DS:[ECX],26
  7340BCA8    41              INC ECX
  7340BCA9  ^ EB EC           JMP SHORT MSVBVM60.7340BC97
  7340BCAB    C3              RETN
  7340BCAC    53              PUSH EBX
  7340BCAD    56              PUSH ESI
  7340BCAE    57              PUSH EDI
  7340BCAF    8B7C24 10       MOV EDI,DWORD PTR SS:[ESP+10]
  7340BCB3    85FF            TEST EDI,EDI
  7340BCB5    74 7C           JE SHORT MSVBVM60.7340BD33
  7340BCB7    33C0            XOR EAX,EAX
  7340BCB9    33C9            XOR ECX,ECX
  7340BCBB    3807            CMP BYTE PTR DS:[EDI],AL
  7340BCBD    B3 26           MOV BL,26
  7340BCBF    74 13           JE SHORT MSVBVM60.7340BCD4
  7340BCC1    381C38          CMP BYTE PTR DS:[EAX+EDI],BL
  7340BCC4    75 07           JNZ SHORT MSVBVM60.7340BCCD
  
  
  
  
  
  
  ALT +F9按很多次就可以返回到程序领空到以下段,我这里是17次.你那里我就不知道了?-,-
  
  00413020    85C0            TEST EAX,EAX            //返回到这里
  00413022    DBE2            FCLEX
  00413024    7D 12           JGE SHORT crackme.00413038
  00413026    68 A0000000     PUSH 0A0
  0041302B    68 481A4100     PUSH crackme.00411A48
  00413030    57              PUSH EDI
  00413031    50              PUSH EAX
  00413032    FF15 24104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj
  00413038    8B55 C8         MOV EDX,DWORD PTR SS:[EBP-38]
  0041303B    8D4D CC         LEA ECX,DWORD PTR SS:[EBP-34]
  0041303E    C745 C8 0000000>MOV DWORD PTR SS:[EBP-38],0
  00413045    FFD6            CALL ESI
  00413047    8D4D B8         LEA ECX,DWORD PTR SS:[EBP-48]
  0041304A    FF15 C0104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>; MSVBVM60.__vbaFreeObj
  00413050    8B55 D0         MOV EDX,DWORD PTR SS:[EBP-30]
  00413053    8B45 CC         MOV EAX,DWORD PTR SS:[EBP-34]
  00413056    52              PUSH EDX
  00413057    50              PUSH EAX
  00413058    6A 00           PUSH 0
  0041305A    FF15 98104000   CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCo>; MSVBVM60.__vbaStrComp
  00413060    66:85C0         TEST AX,AX
  00413063    0F85 08010000   JNZ crackme.00413171
  00413069    A1 10404100     MOV EAX,DWORD PTR DS:[414010]
  0041306E    85C0            TEST EAX,EAX
  00413070    75 19           JNZ SHORT crackme.0041308B
  00413072    8B3D 7C104000   MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaNe>; MSVBVM60.__vbaNew2
  
  
  
  F8一步一步的往下跟就可以看到注册码了:)
  
  EAX 001508D4 UNICODE "5201314"
  ECX 00D51214
  EDX 00151414 UNICODE "UEKAAN"
  EBX 733B3FA7 MSVBVM60.__vbaObjSet
  ESP 0012F3A0
  EBP 0012F488
  ESI 733B4422 MSVBVM60.__vbaStrMove
  EDI 00D51CE4
  EIP 00413056 crackme.00413056
  
  输入一下,成功了.是不是感觉有点成就感.-_-
  
  
  另外 感谢  peaceclub KanXue Fly 大彻大悟 machenglin wynney laomms xxdoc forgot monkeycz  一直以来对我的帮助
   
  祝大家2007新的一年 身体健康 万事如意 金猪大发
  
  
  
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年01月15日 13:07:10


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
可以用OD 插件 ,就不要查找了,简单而快捷
2007-1-15 13:30
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用OD插件,断下后追不到注册码!
2007-1-16 11:06
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
楼上的搞错了吧,你是不是忽略了这一条指令

00412EEA      66:83FB 06      CMP BX,6
00412EEE     /0F8D 81000000   JGE crackme.00412F75

你的用户名,必须大于等于 6 个字符

完全明码+简单的一个 CM
2007-1-16 11:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
下断点 MSVBVM60.__vbaStrComp ,明码比较
2007-1-16 18:12
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
讲得不是很详细
2010-2-19 15:42
0
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
对于VB程序,我习惯直接用VBEXPLORER工具来看消息的对应地址
2010-2-19 16:28
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
光讲了怎么做?却没事为什么这么做。
2010-2-20 11:57
0
游客
登录 | 注册 方可回帖
返回
//