背景:客户有严格的保密要求,任何进入内网环境的代码也好数据也罢,一律不能拿出来,这对debug造成了非一般的困难,因此领导想通过加密源码文件的方式把代码放入客户的环境,然后利用进行调试,最开始是一个大胆的想法,看了一些开源项目,最终还是通过vim和gdb配合完成了加密调试
环境准备
根据vim官方说法,在vim8.1之后内置了debug功能termdebug,因此首先要编译一个版本大于8.1的vim,编译完成之后查看是否存在termdebug插件
ls -la ~/.vim/plugin/termdebug.vim
若存在则没有问题。
termdebug对gdb的要求为不低于7.2版本,任意编译一个大于此版本的gdb即可。
如何使用
进入vim
输入命令
:packadd termdebug
(在我的开发环境centos7并不需要输入这一行,但在我自己的服务器debian12上需要输入这一行)输入命令
:Termdebug
vim会自动分为三栏,最上面为gdb,中间为你启动的程序,下面为源码对源码进行加密
vim 1.cpp
输入大写X:X
输入密码,并wq
开启加密debug
能够看到此时需要输入密码
输入密码之后:
成功打开文件并断在指定地方。
其他
通过h terminal-debug
可以查看帮助文档,很多功能就不一一介绍了,大家可以自行学习
拓展一下,不同版本的vim默认加密方式不一样,大多数为zip加密,可以通过:set cm?
来查看加密方式,如果为zip的话尽量建议换一个加密方式
:set cm=zip
:set cm=blowfish
:set cm=blowfish2
打完收工