JlinkARM破解

我用的是JLINK OB, 今天安装了JLINK6.30g版本, 但仿真时 The connected J-Link is defective. Proper operation cannot be guaranteed...,提示我的JLINK是有缺陷的,我点确定后仍然能正常运行。但总不能每次仿真都提示一下吧,决定偿试一下能不能解决。

首先用OD载入JLINK.exe, 运行,一会儿出现The connected J-Link is defective对话框

点OK后程序可以正常运行。我们知道JLink的驱动在JlinkARM.dll文件中,因此切换到模块JLinkRAM. 在OD中右键-查看-模块JLINKARM。

右键-分析-分析代码

右键-查找-所有参考文本字串

在弹出的框中查找文本 The connected J-Link is

找到提示的语句, 在该行上,右键-反汇编窗口中跟随

在汇编窗口中的该行上双击HEX数据列下断点,按CTRL+F2,使程序重新运行,大约5秒后停在该行上

根据堆栈空间,和汇编代码,函数的入口点应该在PUSH Warning之前,

因此在之前的PUSH ESI上下断点,按CTRL+F2,使程序重新运行,然后乖乖停在该行上

按F8单步运行,发现有一个循环次数0x1388 的判断过程,循环结束后将弹出The connected J-Link is defective对话框,如果在循环中条件成立则跳转到JLinkARM.6FC0B4D6

尝试使程序强制跳转到JLinkARM.6FC0B4D6。双击该行,修改汇编JNZ 为 JMP,然后继续按F8单步运行,程序跳转到JLinkARM.6FC0B4D6处

然后使程序全速运行,发现不再提示The connected J-Link is defective对话框。

用UltraEdit打开JLinkARM.dll,查找85 C0 75 77 6A 01 E8, 发现只搜到一处,将75改成EB后保存,直接运行JLINK.EXE, 不再出现The connected J-Link is defective对话框, 问题解决
下面是修改过的JLinkARM.dll

猜你喜欢

转载自my.oschina.net/u/730693/blog/1788697