【破解作者】 pentacle
【使用工具】 OllyDbg1.10,PEid0.93
【破解平台】 XP SP2
【软件名称】 图片磨牙器.exe V1.0
【软件简介】 一个图片特效工具,有多种特效,还可以把图片转为字符画.......
未注册版有50次使用限制。
【软件大小】 386K
【加壳方式】 UPX
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
现在正处在上不上下不下的位置,太难的追不出来,太简单的又浪费时间。刚好想起原先在XX杂志光盘上的图片磨牙器(刚学会用OD那儿总喜欢追出注册码,碰到的第一个不是明码比较的,为了不让自己信心受挫,便先掠在一边了),嘿嘿........
用PEid0.93查是UPX的壳,手动脱壳搞定,都不用修复IAT表,脱壳后1.33M。
运行后注册,无提示。不管,用OD载入。查找ASCII字符。(小提示,一般用关键字"注册""Reg"都可以快速找到我们要的)
我们来到这儿
004C7A4B E8 04C4F3FF CALL 图片磨牙.00403E54 ; 判断注册名和注册码的位数
004C7A50 3BD8 CMP EBX,EAX ; 注册码长度=注册名长度*2+2
004C7A52 75 75 JNZ SHORT 图片磨牙.004C7AC9 ; 注册名长度和注册码长度不符就跳走
004C7A54 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004C7A57 E8 F8C3F3FF CALL 图片磨牙.00403E54
004C7A5C 8BD0 MOV EDX,EAX
004C7A5E 85D2 TEST EDX,EDX
004C7A60 7E 23 JLE SHORT 图片磨牙.004C7A85
004C7A62 B8 01000000 MOV EAX,1
004C7A67 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
004C7A6A 8A4C01 FF MOV CL,BYTE PTR DS:[ECX+EAX-1] ; 依次取注册名字符的ASCII值
004C7A6E 8B5D F8 MOV EBX,DWORD PTR SS:[EBP-8]
004C7A71 3A4C03 FF CMP CL,BYTE PTR DS:[EBX+EAX-1] ; 注册名与计算后的值对比
004C7A75 74 0A JE SHORT 图片磨牙.004C7A81 ; 不相等就OVER
004C7A77 E8 28BCF3FF CALL 图片磨牙.004036A4
004C7A7C E9 85000000 JMP 图片磨牙.004C7B06
004C7A81 40 INC EAX
004C7A82 4A DEC EDX
004C7A83 ^ 75 E2 JNZ SHORT 图片磨牙.004C7A67 ; 循环校验注册名与计算后的值
004C7A85 B8 6C7B4C00 MOV EAX,图片磨牙.004C7B6C ; 谢谢您注册本软件!
根据上面的对比,我们肯定是找不着真的注册码了。只好继续找吧
004C6DDC E8 E71BF4FF CALL 图片磨牙.004089C8 ; 取注册码第1、2位初始EDI
004C6DE1 8BF8 MOV EDI,EAX ; 以后依次取出2位注册码作为EDI
004C6DE3 C745 EC 0300000>MOV DWORD PTR SS:[EBP-14],3
004C6DEA 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
004C6DED 50 PUSH EAX
004C6DEE B9 02000000 MOV ECX,2
004C6DF3 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14]
004C6DF6 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004C6DF9 E8 5ED2F3FF CALL 图片磨牙.0040405C
004C6DFE 8B4D C8 MOV ECX,DWORD PTR SS:[EBP-38] ; 取注册码第3、4位为EAX
004C6E01 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
004C6E04 BA EC6E4C00 MOV EDX,图片磨牙.004C6EEC
004C6E09 E8 92D0F3FF CALL 图片磨牙.00403EA0
004C6E0E 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34]
004C6E11 E8 B21BF4FF CALL 图片磨牙.004089C8
004C6E16 8BD8 MOV EBX,EAX
004C6E18 3B75 F4 CMP ESI,DWORD PTR SS:[EBP-C]
004C6E1B 7D 03 JGE SHORT 图片磨牙.004C6E20
004C6E1D 46 INC ESI
004C6E1E EB 05 JMP SHORT 图片磨牙.004C6E25
004C6E20 BE 01000000 MOV ESI,1
004C6E25 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004C6E28 0FB64430 FF MOVZX EAX,BYTE PTR DS:[EAX+ESI-1] ; 每个循环依次取机器的ASCII值
004C6E2D 33C3 XOR EAX,EBX ; EAX=EAX XOR EBX
004C6E2F 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX
004C6E32 3B7D E8 CMP EDI,DWORD PTR SS:[EBP-18] ; 异或后的EAX值与EDI(也就是上一轮最终EAX值)比较
004C6E35 7C 0F JL SHORT 图片磨牙.004C6E46
004C6E37 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; EDI>=EAX
004C6E3A 05 FF000000 ADD EAX,0FF ; EAX=EAX+0FF
004C6E3F 2BC7 &n
[1] [2] 下一页