B-Puzzle拼图游戏
cracker:游上岸的鱼[DFCG][BCG][FCG]
游戏注册成功会生成一个bpuzzle.ini,文件把注册码和用户名写入里面
第一步:确定关键CALL,有两种方法:
1.你可以用“我要”哥哥的方法,反汇编来确定关键CALL和跳转,但静态跟踪总归没有动态跟踪来得有说服力,和精确性。
2.用TRW2000,下断HMEMCPY,你不要用F12一个劲的往前跳,你要多看看TRW窗口里的关键语句,如:JZ ***,00,USER32!GetWindowTextA等,还有注意寄存器EAX,和EIP那个出现了你的用户名长度或者SN的长度,你就要慢下来了。要是不远就有一个RET返回命令你可以放心走过,因为注册码的比较,不会那么简单的几句的。然后也可以下BPX GetWindowTextA,
015F:004032F6 CALL `USER32!GetWindowTextA`==》获取用户名
015F:004032FB PUSH BYTE +09
015F:004032FD LEA EAX,[EBP-0C] 在这里我就是看到EAX=000007才停下的,因为我015F:00403300 PUSH EAX 我输入的用户名XX-FISH就是7个字节嗄~
015F:00403301 MOV EDX,[EBX+22]
015F:00403304 MOV ECX,[EDX]
015F:00403306 PUSH DWORD [ECX+0C]
015F:00403309 CALL `USER32!GetWindowTextA`==》获取假SN
015F:0040330E LEA EAX,[EBP-18]
015F:00403311 PUSH EAX
015F:00403312 LEA EDX,[EBP-38]
015F:00403315 PUSH EDX
015F:00403316 CALL 004027C4==》注册码计算的关键CALL
015F:0040331B ADD ESP,BYTE +08
015F:0040331E MOV ESI,EAX==》这里你可以得到注册码了
015F:00403320 LEA ECX,[EBP-0C]
015F:00403323 PUSH ECX
015F:00403324 PUSH ESI
015F:00403325 CALL `KERNEL32!lstrcmpA`
015F:0040332A TEST EAX,EAX
015F:0040332C JNZ 0040335E==》此处可改为JZ,即可爆破
015F:0040332E MOV BYTE [EBX+1D],01
015F:00403332 PUSH DWORD [EBX+19]
015F:00403335 LEA EAX,[EBP-38]
015F:00403338 PUSH EAX
015F:00403339 PUSH DWORD 0046267C
015F:0040333E PUSH DWORD 0046266F
015F:00403343 CALL `KERNEL32!WritePrivateProfileStringA` 这里是在创建文件写入一些注册信息
015F:00403348 PUSH DWORD [EBX+19]
015F:0040334B LEA EDX,[EBP-0C]
015F:0040334E PUSH EDX
015F:0040334F PUSH DWORD 0046268E
015F:00403354 PUSH DWORD 00462681
015F:00403359 CALL `KERNEL32!WritePrivateProfileStringA`请保留地址 http://www.qqread.com/encrypt/o090186062.html
更多内容请看游戏开发、网络游戏攻略、图形图像专题,或进入讨论组讨论。
cracker:游上岸的鱼[DFCG][BCG][FCG]
游戏注册成功会生成一个bpuzzle.ini,文件把注册码和用户名写入里面
第一步:确定关键CALL,有两种方法:
1.你可以用“我要”哥哥的方法,反汇编来确定关键CALL和跳转,但静态跟踪总归没有动态跟踪来得有说服力,和精确性。
2.用TRW2000,下断HMEMCPY,你不要用F12一个劲的往前跳,你要多看看TRW窗口里的关键语句,如:JZ ***,00,USER32!GetWindowTextA等,还有注意寄存器EAX,和EIP那个出现了你的用户名长度或者SN的长度,你就要慢下来了。要是不远就有一个RET返回命令你可以放心走过,因为注册码的比较,不会那么简单的几句的。然后也可以下BPX GetWindowTextA,
015F:004032F6 CALL `USER32!GetWindowTextA`==》获取用户名
015F:004032FB PUSH BYTE +09
015F:004032FD LEA EAX,[EBP-0C] 在这里我就是看到EAX=000007才停下的,因为我015F:00403300 PUSH EAX 我输入的用户名XX-FISH就是7个字节嗄~
015F:00403301 MOV EDX,[EBX+22]
015F:00403304 MOV ECX,[EDX]
015F:00403306 PUSH DWORD [ECX+0C]
015F:00403309 CALL `USER32!GetWindowTextA`==》获取假SN
015F:0040330E LEA EAX,[EBP-18]
015F:00403311 PUSH EAX
015F:00403312 LEA EDX,[EBP-38]
015F:00403315 PUSH EDX
015F:00403316 CALL 004027C4==》注册码计算的关键CALL
015F:0040331B ADD ESP,BYTE +08
015F:0040331E MOV ESI,EAX==》这里你可以得到注册码了
015F:00403320 LEA ECX,[EBP-0C]
015F:00403323 PUSH ECX
015F:00403324 PUSH ESI
015F:00403325 CALL `KERNEL32!lstrcmpA`
015F:0040332A TEST EAX,EAX
015F:0040332C JNZ 0040335E==》此处可改为JZ,即可爆破
015F:0040332E MOV BYTE [EBX+1D],01
015F:00403332 PUSH DWORD [EBX+19]
015F:00403335 LEA EAX,[EBP-38]
015F:00403338 PUSH EAX
015F:00403339 PUSH DWORD 0046267C
015F:0040333E PUSH DWORD 0046266F
015F:00403343 CALL `KERNEL32!WritePrivateProfileStringA` 这里是在创建文件写入一些注册信息
015F:00403348 PUSH DWORD [EBX+19]
015F:0040334B LEA EDX,[EBP-0C]
015F:0040334E PUSH EDX
015F:0040334F PUSH DWORD 0046268E
015F:00403354 PUSH DWORD 00462681
015F:00403359 CALL `KERNEL32!WritePrivateProfileStringA`请保留地址 http://www.qqread.com/encrypt/o090186062.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 常用电脑密码破解实用技巧! (14811次浏览)
- 深入掌握网络加密及解密方法 (9144次浏览)
- 常见电子书格式及其反编译思路 (6502次浏览)
- 数据加密技术 (6242次浏览)
- openssl的man中文文档 (6192次浏览)
- 电脑中的十二种常用密码破解法 (5190次浏览)
- 详解加密技术概念、加密方法以及应用 (4968次浏览)
- 对称加密算法技术概述 (4666次浏览)
- 网络游戏封包基础 (4077次浏览)
- 加密:让你的文件人间蒸发 (4010次浏览)



