二进制插桩~
说点什么
虽然不是主要做这个的,但是安全工程师的知识面太大咯,
学习其它科目的知识有助于锻炼思维,所以记一下学习过程
插桩是啥
动态二进制插桩(dynamic binary instrumentation ,DBI)技术是一种通过注入插桩代码,来分析二进制应用程序在运行时的行为的方法。
动态二进制插桩技术,可以在不影响程序动态执行结果的前提下,按照用户的分析需求,在程序执行过程中插入特定分析代码,实现对程序动态执行过程的监控与分析。
为啥要插桩
源代码插桩
大家调试程序一定试过这样的方法:
。。。。。
printf("牛奶颜色:%s\n", milk_color);
。。。。
这就是源代码插桩,方便快捷,如果牛奶颜色是黑色,程序就出错了。
二进制插桩
将插桩代码注入正在运行的进程,也就能调试程序了…
mov esp, ebp
我插,我看~
pop ebp
例如这样能看到ebp了,不过过程比源代码插桩更繁琐,需要拆解。
如何插桩
两种主要方式和三种执行模式
方式1:
在动态二进制系统的控制下从头到尾执行程序。