渭南师范学院网络信息安全协会安全月刊(下简称“月刊”),是由本协会在2023年推出的定期性栏目。月刊围绕当下网络与信息安全技术,每期以一个具体方向为主题展开,包含该方向相关技术的讲解与演示、相关CTF题目的复盘,并提供相关延伸资料供大家进一步的学习。月刊还会包含安全新闻、活动速递等模块,为大家呈现网络安全行业当下活动态势。
本期内容将从指令级动态调试技术展开,帮助逆向人员在没有源代码的情况下快速掌握程序执行流程,并可以借助调试工具改变程序执行流程和关键变量,以快速达成目标。
01
什么是动态调试?
通过调试器直接创建调试进程,或将调试器附加到现有进程后,对调试进程的执行流程、变量、堆栈等进行监视和控制的过程就是动态调试。
动态调试能做什么?
由于在调试时可以逐语句或逐过程的执行代码,同时语句或过程的执行结果又能实时的在监视中查看,开发人员或安全人员能通过调试快速定位程序问题和漏洞。
对于逆向分析人员,如果一个程序的执行流程过于复杂,难以通过静态分析排除和简化分支,则可通过动态调试来摸清程序执行时的实际情况。
另外,动态调试就犹如游戏外挂一样强大,在动态调试时,可以随意改变程序执行流程,随意的修改任何变量,这使得调试者可以绕过检测代码或无效代码,选择指定的分支进行。
怎样进行动态调试?
动态调试根据有无源代码分为两种情况,对于有源代码的情况,使用相应语言的源代码级调试工具,例如,对于C语言,可以使用GDB进行源代码级调试;对于没有源代码的情况,则根据二进制可执行文件的执行平台,选择相应的反汇编器和机器指令级调试器,例如,对于一个Windows x64平台下的PE+文件,可以使用x64dbg进行机器指令级调试。
无论对于何种动态调试,下断点都是关键的一环,断点可以让程序在执行到此处时停下并被调试器接管,合适的断点能大大加快调试速度并降低调试难度,这需要长期的经验积累才能做到。
经典动态调试工具 OllyDbg
02
END
渭南师范学院网络信息安全协会
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...