用了这么多报表工具,明宇报表平心而论是目前市面上稍好用的报表工具。公司选择明宇报表之初,该报表并不能实现公司所有需求,甚至主要需求也无法满足,后来公司与深圳明宇公司合作,明宇公司给我们公司定制了一个报表工具。但是无奈明宇使用了加密狗,必须要用key才能使用,而这个开发key好几万一个,不得不说这个明宇公司够黑的。由于公司业务越来越多,key经常都是几个人轮着用,有时客户催的紧,key又被别人急用着,焦头烂额之际,我想何不把他破解了,于是我开始寻思着如何下手。具体的分析过程不做累述。接下来开始上主菜吧。
要key才能使用
经过分析发现,这个工具是用dephi开发,并且是加了壳的,是UPX壳。加了壳的软件,通常我们找不到主程序入口,那么很简单,首先我们要脱壳。
1、将程序载入OD,按F8开始单步调试,当左边寄存器窗口的ESP和EIP红了就停。
2、选中ESP后面的地址,右键-》数据窗口中跟随
3、选中地址打上断点
4、重新开始,按F9让程序执行到断点处,然后F8单步到
这里的Jnz是一个像上跳转,我们选中下面一条,然后按F4直接跳过这一步,此时里程序的OEP(程序真正的入口)已经不远了
5、然后按两次F8,就到了程序的真正入口了,我们可以开始脱壳了
6、右键-》用OD脱壳调试进程
什么都别改,直接点击脱壳。保存,脱壳完成。
接下来开始破解加密key了,我们将脱了壳的程序载入OD
1、 按F9运行起来,到程序弹出“未找到加密锁”的提示框,按F12跟踪,点击K,来到
2、 选中,右键,选择在显示调用
3、 在段首处设下断点
4、 重新运行,到达断点的时候,右下角会出现返回到xxxxxx到xxxxxxx,选中00404B3C右键.选择反汇编窗口中跟随,找到他的汇编代码
6、jnz在汇编语言中的意思是当结果不为零的时候跳转,没有key的情况一定返回了0,所以我们将jnz改为无条件跳转的调用,也就是将jnz改为jmp,相当于if(1==1),程序就会继续往下执行
保存一下,我保存在了桌面,文件为b.exe,然后打开看看
这个时候程序已经不再提示“未找到加密锁”,说明加密锁成功。但是又提示个这个玩意,没关系,一样的道理,重复上诉步骤,在反汇编跟随的时候,上面遇到的是jnz,jge的意思是有符号大于等于则跳转,也是一个判断,同样把jge改为无条件跳转。
改完之后保存为文件c.exe,打开
妈蛋还有提示,无奈再次重复上述步骤
功夫不负有心人啊,历经九九八十一难终于取得西经。大多数加密狗的破解方法都是类似的,大家可以举一反三<><>
326



被折叠的 条评论
为什么被折叠?



