天天看点

[jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue

解决jlink-ob仿真自动退出

  • jlink-ob 各个版本都适用--jianqiang.xue
    • 一、准备工具:
    • 二、OD查找关键信息
    • 三、修改JLinkARM.dll文件,解决问题
    • 四、速成版本,直接替换JLinkARM.dll

jlink-ob 各个版本都适用–jianqiang.xue

一、准备工具:

  1. FishcOD (百度云,提取码:4131) CSDN (城域网盘,访问密码: 4634)
  2. UltraEdit (百度云,提取码:l9xz) CSDN (城域网盘,访问密码: 4634)

二、OD查找关键信息

  1. 打开OD,载入JFlash.exe. (x\JLink_Vxxx\JFlash.exe)
  2. 点击运行,此时,J-Flash会被打开。
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
  3. 随便创建一个项目,然后连接目标设备。
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
  4. 等等30s,直到J-Link弹窗警告。
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
  5. 然后返回OD界面,查看–可执行模块–JLinkARM.dll(双击打开)
  6. OD汇编窗口,右键–中文搜索引擎–智能搜索
  7. Ctrl+f,打开搜索框,并输入"The connected J-Link is",找到后,双击进入。
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
  8. 找到“提示框”位置。汇编讲解如下:
042392D5    85C0            test eax,eax
042392D7    75 59           jnz short JLinkARM.04239332
042392D9    6A 01           push 0x1
042392DB    E8 C0100800     call JLinkARM.042BA3A0
042392E0    46              inc esi
042392E1    83C4 04         add esp,0x4
042392E4    81FE 88130000   cmp esi,0x1388
           

可以看到有个循环0x1388的地方(0x1388换算10进制为5000,实际上这里的含义是软件开启5000ms,即5s后弹出这个提示警告框),这个地方就是最初弹出的提示我们警告框的地方,我们将1388上面的这个JNZ修改为JMP指令,将它改为强制执行,对应的16进制就是75改为EB,这样警告框就不会再次弹出了。

记录当前16进制数据:85 C0 75 59 6A 01
[jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
  1. 找到仿真自动断开位置(隐藏暗桩)
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
    [jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue
04ED9368    85C0            test eax,eax
04ED936A    75 1A           jnz short JLinkARM.04ED9386
04ED936C    6A 01           push 0x1
04ED936E    E8 2D100800     call JLinkARM.04F5A3A0
04ED9373    46              inc esi
04ED9374    83C4 04         add esp,0x4
04ED9377    81FE 30750000   cmp esi,0x7530
           

0x7530换算10进制为30000,实际上这里的含义是软件开启30000ms,即30s后断开仿真),也是将JNZ修改为JMP,对应的16进制就是75改为EB,这样仿真再也不会自动退出了。

记录当前16进制数据:85 C0 75 1A 6A 01

三、修改JLinkARM.dll文件,解决问题

  1. UltraEdit打开JLinkARM.dll文件
  2. 搜索关键信息1:85 C0 75 59 6A 01,修改为 85 C0 EB 59 6A 01.
  3. 搜索关键信息2:85 C0 75 1A 6A 01,修改为 85 C0 EB 1A 6A 01.
  4. ctrl+s,保持文件
[jlink-ob] 解决The connected J-Link is defective提示框和仿真的问题jlink-ob 各个版本都适用–jianqiang.xue

注:上述16进制数据,每个版本都不一致。

四、速成版本,直接替换JLinkARM.dll

仅对JLink_V682,生效,其他不一定能用。

补丁:CSDN下载

补丁:城域网盘下载,JLinkARM_V682补丁.zip: (访问密码: 4634)

JLink_V682下载

继续阅读