解决Jlink盗版提示

问题

重装机器,重新下载了J-Link的驱动,连上Navota送的Jlink-ob

居然提示:The connected J-Link is defective. Proper operation cannot be guaranteed…

解决

一看就是盗版惹的祸啊,咋办,咋办?

网上一搜,还真有解决办法:

https://www.amobbs.com/thread-5689245-1-1.html

不过,版本不同,字节也不一样啊。。

只能自己操刀干了。

步骤

阿莫的那个帖子写的很细了,摘抄过来

首先用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

和原文有点不一样了。

调试时候可以发现,跳转地址改了的。

实际到了我用的V6.34c这一版,dll内容为85 C0 75 75 6A 01 E8 改为了 85 C0 EB 75 6A 01 E8

测试正常,收工。

坚持原创技术分享,您的支持将鼓励我继续创作!