首页
社区
课程
招聘
[原创]修改一处完全破解EditPlus 3
发表于: 2010-2-4 10:57 8226

[原创]修改一处完全破解EditPlus 3

2010-2-4 10:57
8226
【文章标题】: 修改一处完全破解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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
  • 1.jpg (19.43kb,318次下载)
  • 2.jpg (23.35kb,313次下载)
  • 3.jpg (8.56kb,312次下载)
  • 5.jpg (23.77kb,313次下载)
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
弹出正确对话框的校验是第一层校验,关闭程序的时候还会进行一些校验,
如果注册码无效将注册码的第一个字节改成0保存到注册表,这是第二层校验
而重启校验只是调用的第一层校验的call
2010-2-4 12:58
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
真的真的真的很不喜欢爆破。爆破总显得很单薄。
楼主继续努力!加油!
论坛里好像有一篇分析Editplus3算法的文章。
2010-2-4 19:09
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
重启验证....
2010-2-4 19:25
0
雪    币: 564
活跃值: (12)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
不喜欢爆破,用注册机吧~

http://www.unpack.cn/viewthread.php?tid=43034&highlight=editplus

http://rapidshare.com/files/315175804/EditPlus.KeyGen.zip
2010-2-4 19:40
0
雪    币: 291
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
标 题: 【原创】EditPlus V2.20 Build 284 注册算法分析
作 者: ForEver
时 间: 2005-10-29,14:32
链 接: http://bbs.pediy.com/showthread.php?t=18021
2010-2-4 21:53
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
7
支持楼主去分析算法
2010-2-4 22:37
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
小弟刚出茅庐,还不会算法
2010-2-5 07:59
0
游客
登录 | 注册 方可回帖
返回
//