Linux 安装 Jlink 驱动
安装 jlink 驱动
|
|
装好后这个 jlink 会把jlink 的SN 号改成 20160803
导致在后续的烧写过程中 JLINK 的DLL 识别到是盗版, 会弹窗, 很烦
但是不装这个jlink pyocd 又不认识jlink…
验证是否能识别jlink
|
|
能识别这个就可以使用pyocd 通过 jlink 烧写程序了
pyocd 使用jlink烧写程序
和使用DAPLink 一样的命令, 不需要加任何参数, pyocd 会自动识别
例如: program_chip.sh
|
|
解决 使用pyocd 下载时Jlink 会弹窗警告盗版信息的问题
原因应该是安装 Jlink 驱动的时候, 同时安装了一大堆Jlink 的 desktop, 有可能pyocd 在烧写过程中会优先去使用系统的工具
, 但是我已经把 libjlinkarm_x86.so 和 libjlinkarm.so 都 patch 了也还是会弹窗, 搞不清楚是哪里弹窗, 有可能是pyocd 自己弹窗的
解决办法
把安装Jlink 时安装的Jlink 全家桶换个路径, 这样pyocd 就找不到它了, 就不会弹窗了
|
|
然后再把 “/opt/SEGGER/JLink_2” 加入到PATH 即可
|
|
添加 “export PATH=/opt/SEGGER/JLink_2:$PATH”
修改Jlink 的动态库, 禁止 jinkl 弹窗警告 ( Window 和 Linux 版本都是一样的修改思路 )
一共有两个库要修改, 一个是libjlinkarm.so 另一个是libjlinkarm_x86.so, 修改的方法都是一样的, 这里以 libjlinkarm.so 为例
把 libjlinkarm.so.8.10.4 拖到 Ghidra 中分析
一般来说可以自动识别文件类型, 使用默认的就好了
点击 Analyze , 等待几分钟, 等Ghidra 分析完成
定位弹窗的代码位置
打开字符串窗口
Window => Defined strings
搜索 clone
在代码窗口上把光标移到对应字符串点右键 References => Show References To Address
双击引用的地方跳转到函数内, 在右侧窗口切换到 Decompile 窗口查看函数伪代码
修改代码绕过弹窗
分析伪代码可以知道, 检测和弹窗在while 循环里, 我们可以直接修改汇编, 绕过这个有while 代码, 让函数进来后直接跳转到 FUN_00608270(DAT_01480b70); 那里去
在0x42b3a5 那一行按右键 Patch Instruction 或者快捷键 Ctrl + Shift + G
然后直接修改代码即可
原代码
修改后
给原始的so 或者 dll 打补丁
定位代码在二进制中的偏移
鼠标放在代码行的地址上, 等两秒钟就会弹出一个Offset 的窗口, 里面的Byte Source Offset 就是该代码位于二进制中的偏移, 这里是 0x32b3a5
修改二进制
|
|
按回车 然后输入 32b3a5 回车, 跳转到代码位置
按方向键移动光标 把EB 18 改为 EB 22
按 F2 保存
按Ctrl + c 退出