【文章标题】: 修改一处完全破解EditPlus 3
【文章作者】: OH.C
【作者主页】: http://blog.csdn.net/bllqbz | http://569742950.qzone.qq.com
【作者QQ号】: 569742950
【软件名称】: EditPlus 3
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: 注册码
【使用工具】: OllyDBG
【操作平台】: WinXP
【软件介绍】: 这个软件就不用多说了,较好的编辑工具
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
准确来说破解要修改两处地方,有一处虽然不是关键,但这次破解要靠它找到另一个爆破点。读者破解时可直接到关键爆破点进行爆破。如果大家有更好的方法请发出来,让大家分享一下!
破解前应该试运行一下,看看有什么可以帮助破解的。
1.软件没有加壳,直接用OD载入。载入后查找所有参考文本字串。不过似乎没有可用的字串
2.经过试运行知道,注册失败会弹出错误消息框,所以在OD中输入命令 bp MessageBoxW ,按F9运行,然后注册,就断下来了。
就在光标所在行鼠标右键 --> 反汇编窗口中跟随 ,来到地址 004E72C2 。
向上找第一个RETN,然后在它的下一句设置断点
再F9运行再注册一次,又断下来,再鼠标右键 --> 反汇编窗口中跟随 ,如此弄几次,最后来到地址00495EF2
......
00495E44 . E8 57FFFFFF CALL editplus.00495DA0
00495E49 . 8BF0 MOV ESI,EAX ; 注册名
00495E4B . 8B4424 28 MOV EAX,DWORD PTR SS:[ESP+28]
00495E4F . 83C4 10 ADD ESP,10
00495E52 . 897424 10 MOV DWORD PTR SS:[ESP+10],ESI
00495E56 . 85C0 TEST EAX,EAX
00495E58 . 0F84 EE000000 JE editplus.00495F4C
00495E5E . 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
00495E62 . 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00495E66 . 50 PUSH EAX
00495E67 . 6A 32 PUSH 32
00495E69 . 8D55 5C LEA EDX,DWORD PTR SS:[EBP+5C]
00495E6C . 51 PUSH ECX
00495E6D . 52 PUSH EDX
00495E6E . E8 2DFFFFFF CALL editplus.00495DA0
00495E73 . 8BF8 MOV EDI,EAX ; 假码
00495E75 . 8B4424 1C MOV EAX,DWORD PTR SS:[ESP+1C]
00495E79 . 83C4 10 ADD ESP,10
00495E7C . 897C24 14 MOV DWORD PTR SS:[ESP+14],EDI
00495E80 . 85C0 TEST EAX,EAX
00495E82 . 0F84 C4000000 JE editplus.00495F4C
00495E88 . 53 PUSH EBX
00495E89 . 33DB XOR EBX,EBX
00495E8B . 85C0 TEST EAX,EAX
00495E8D . 7E 46 JLE SHORT editplus.00495ED5
00495E8F > 66:8B37 MOV SI,WORD PTR DS:[EDI]
00495E92 . 66:81FE 0001 CMP SI,100
00495E97 . 73 10 JNB SHORT editplus.00495EA9
00495E99 . 81E6 FF000000 AND ESI,0FF
00495E9F . 66:8B0475 8C4>MOV AX,WORD PTR DS:[ESI*2+574C8C]
00495EA7 . EB 15 JMP SHORT editplus.00495EBE
00495EA9 > 8BC6 MOV EAX,ESI
00495EAB . 25 FFFF0000 AND EAX,0FFFF
00495EB0 . 50 PUSH EAX ; /StringOrChar
00495EB1 . FF15 80B65000 CALL DWORD PTR DS:[<&USER32.CharUpperW>] ; \CharUpperW
00495EB7 . 66:85C0 TEST AX,AX
00495EBA . 75 02 JNZ SHORT editplus.00495EBE
00495EBC . 8BC6 MOV EAX,ESI
00495EBE > 66:8907 MOV WORD PTR DS:[EDI],AX
00495EC1 . 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
00495EC5 . 43 INC EBX
00495EC6 . 83C7 02 ADD EDI,2
00495EC9 . 3BD8 CMP EBX,EAX
00495ECB .^ 7C C2 JL SHORT editplus.00495E8F
00495ECD . 8B7424 14 MOV ESI,DWORD PTR SS:[ESP+14]
00495ED1 . 8B7C24 18 MOV EDI,DWORD PTR SS:[ESP+18]
00495ED5 > 57 PUSH EDI
00495ED6 . 56 PUSH ESI
00495ED7 . E8 84000000 CALL editplus.00495F60 ; 计算注册码
00495EDC . 83C4 08 ADD ESP,8
00495EDF . 85C0 TEST EAX,EAX
00495EE1 . 5B POP EBX
00495EE2 75 18 JNZ SHORT editplus.00495EFC ; 关键跳
00495EE4 . 6A FF PUSH -1
00495EE6 . 6A 10 PUSH 10
00495EE8 . 68 815F0000 PUSH 5F81
00495EED . E8 37140500 CALL editplus.004E7329 ; 注册失败消息框
00495EF2 . 5F POP EDI
00495EF3 . 5E POP ESI
00495EF4 . 5D POP EBP
00495EF5 . 81C4 5C040000 ADD ESP,45C
00495EFB . C3 RETN
00495EFC > 57 PUSH EDI
00495EFD . 56 PUSH ESI
00495EFE . E8 CDF8FFFF CALL editplus.004957D0 ; 注册成功消息框
00495F03 . 83C4 08 ADD ESP,8
00495F06 . 85C0 TEST EAX,EAX
......
现在将地址00495EE2的JNZ改务JMP,让程序无论怎样也跳到00495EFC ,好,现在按F9运行,程序提示要重启验证注册。点OK,然后退出。
3.再用OD载入程序,经过分析,注册码是保存在注册表中
[HKEY_LOCAL_MACHINE\SOFTWARE\ES-Computing\EditPlus 3\Install]
4.接下来的步骤很繁琐,在这里就不讲了。重启验证的关键在地址0043F842
00495EE2 /75 18 JNZ SHORT editplus.00495EFC /*判断注册码是否正确,爆破点*/
0043F842 /74 25 JNZ SHORT editplus.0043F869
......
0043F842 75 25 JNZ SHORT editplus.0043F869 ;跳转则成功,否则失败
0043F844 . 8BCF MOV ECX,EDI
0043F846 . E8 B0FE0900 CALL editplus.004DF6FB
0043F84B . 8BCE MOV ECX,ESI
0043F84D . E8 A9FE0900 CALL editplus.004DF6FB
0043F852 . 8B55 1C MOV EDX,DWORD PTR SS:[EBP+1C]
0043F855 . 8B35 BCB65000 MOV ESI,DWORD PTR DS:[<&USER32.SetTimer>>; USER32.SetTimer
0043F85B . 6A 00 PUSH 0 ; /Timerproc = NULL
0043F85D . 68 F4010000 PUSH 1F4 ; |Timeout = 500. ms
0043F862 . 6A 6D PUSH 6D ; |TimerID = 6D (109.)
0043F864 . 52 PUSH EDX ; |hWnd
0043F865 . FFD6 CALL ESI ; \SetTimer
0043F867 . EB 06 JMP SHORT editplus.0043F86F
0043F869 > 8B35 BCB65000 MOV ESI,DWORD PTR DS:[<&USER32.SetTimer>>; USER32.SetTimer
.......
所以把这行的JNZ改为JMP ,让程序无论怎样都跳到成功那里。按F9运行程序。运行后没有任何提示框,看About ,
说明注册成功了,接下来当然是保存文件了
--------------------------------------------------------------------------------
【经验总结】
破解的方法很简单,实际修改一处地方即可完成破解,有人说可以直接修改启动的关键跳,没错。但是,如果是第一次安装
,注册表中没有任何关于它注册的信息,在破解时根本或者很难找到它重启验证的爆破点,所以要先让程序写入注册信息
,才能继续后面的操作。
大家破解时可以直接到0043F842进行爆破
--------------------------------------------------------------------------------
2010年02月04日 10:48:17
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!