利用GDB和vim进行加密调试

背景:客户有严格的保密要求,任何进入内网环境的代码也好数据也罢,一律不能拿出来,这对debug造成了非一般的困难,因此领导想通过加密源码文件的方式把代码放入客户的环境,然后利用进行调试,最开始是一个大胆的想法,看了一些开源项目,最终还是通过vim和gdb配合完成了加密调试 环境准备 根据vim官方说

背景:客户有严格的保密要求,任何进入内网环境的代码也好数据也罢,一律不能拿出来,这对debug造成了非一般的困难,因此领导想通过加密源码文件的方式把代码放入客户的环境,然后利用进行调试,最开始是一个大胆的想法,看了一些开源项目,最终还是通过vim和gdb配合完成了加密调试

环境准备

根据vim官方说法,在vim8.1之后内置了debug功能termdebug,因此首先要编译一个版本大于8.1的vim,编译完成之后查看是否存在termdebug插件

ls -la ~/.vim/plugin/termdebug.vim

若存在则没有问题。

termdebug对gdb的要求为不低于7.2版本,任意编译一个大于此版本的gdb即可。

如何使用

  1. 进入vim

  2. 输入命令 :packadd termdebug (在我的开发环境centos7并不需要输入这一行,但在我自己的服务器debian12上需要输入这一行)

  3. 输入命令 :Termdebug vim会自动分为三栏,最上面为gdb,中间为你启动的程序,下面为源码

  4. 对源码进行加密vim 1.cpp 输入大写X :X 输入密码,并wq

  1. 开启加密debug

能够看到此时需要输入密码

输入密码之后:

成功打开文件并断在指定地方。

其他

通过h terminal-debug 可以查看帮助文档,很多功能就不一一介绍了,大家可以自行学习

拓展一下,不同版本的vim默认加密方式不一样,大多数为zip加密,可以通过:set cm? 来查看加密方式,如果为zip的话尽量建议换一个加密方式

:set cm=zip
:set cm=blowfish
:set cm=blowfish2

打完收工