程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的运行过程中,来查找和修正程序中的语法错误和逻辑错误。随着系统安全与逆向工程的不断发展,程序调试已经成为信息安全爱好者所必备的一种技术。
汇编是将汇编代码编译、链接成可执行文件的过程。反汇编则是将可执行文件还原成汇编代码的过程。反汇编技术常常应用在逆向分析、软件破解、漏洞挖掘 等场景中,主要目的是逆向分析程序中的逻辑,然后改变程序的运行逻辑,达到更改程序执行的目的。
0x00:使用VS2017生成*.exe文件
创建Win32控制台程序
新建项目==》Visual C++中的Windows桌面==》Windows桌面向导;
Windows桌面项目对话框中选择:控制台应用程序,空项目;
在 解决方案资源管理器 的新建项目的源文件栏中添加xx.cpp文件,输入源代码,按F5编译运行后生成*.exe文件。
解决方案配置
选择 Reverse;根据情况选择 x86 或x64 ;
==============================================================================================
0x01:Ollydbg基础知识
1.0:汇编语言基础指令:
CALL xxxx 调用xxxx地址处的函数
JMP xxxx 跳转到xxxx地址处
PUSH xxxx 将xxxx压