最近安装了keil 5.36使用了老的j-link硬件,一直提示(下图):
刚好最新学习调试,尝试用od干掉弹窗,搜了一圈没JLinkARM.dll找到提示(原因未知).于是乎拿出了ida载入JLinkARM.dll:
载入dll后,搜索 defective
这个过程有点慢 大概用了三四分钟(配置太低).
搜索结果:
双击进入第一个text段:
分析一下函数:
函数错误跟着红色箭头看是执行错误的路径 jl跳转到错误提示(红色箭头)跟回到上个函数loc_1009FD40(绿色箭头)继续检测,右侧浅蓝色的时正常执行流程loc_1009FDA2(蓝色).因此 我们只需要将 loc_1009FD40最后一步执行结果修改到正常路径即可.
即将jnz改成 jmp强制跳转到loc_1009FDA2.
知道怎么改了 就好办了:
由上图分析可以知道loc_1009FD40所对应的二进制地址:0009F140,
用winhex搜索9f140地址跳转到该位置. 向后查找jnz对应的指令85 C0 75:
修改75未EB, 修改后如下对比:
然后保存 替换原来的文件即可.
修改后文件: JLinkARM.dll
备份下载: J-linkArm.dll
说明: 带bk是原始文件未修改的.