常见问题,从易到难,如果错误,请指正,谢谢。
OD 做逆向分析的关键:函数调用参数及返回值的变化、内存数据变化;
3.1 如何将在一个OD中下的断点,在另外一个OD重中使用?
方法:将当前库的UDD文件拷贝到新的OD的UDD文件夹下即可;
3.2 如何下条件断点?
当某处多次被跑到,需要在特定的情况下停下,使用条件断点;
快键: Shift + F12
例如:如果想到值为A的时候断下来:
Byte ptr[[esp + 4] + 7] == 'A'
[STRING[esp + 4]] == "C:\\1212.txt"
3.3 OD下断点的常用地方(其他见《加密与解密》)
发送命令的位置:特别是发现函数被调用多次
3.3.1 WriteFile: 写文件(写文件):发送命令
3.3.2 DeviceIoControl():输入输出
3.3.3 Send() :发送数据
3.3.4 ReadFile:收取命令
动态加载函数的位置:Kernel32.GetProcAddress
对话框断:user32.CreateWindowExA、user32.CreateWindowExA、user32.CreateDialogIndirectParamA、messageBox 弹出窗口、界面:WSetTile
Windows 中加载资源:LockResource工具
3.4 使用Ctrl+ B 来搜索特征值
例如:Dbg中Ctrl+B :搜索内存中的值,01 00 56 00 ,找到AV/AV1的地方;然后下断点,看哪里调用访问或则修改了这里的值;malloc或new出来的堆空间可以使用这个来搜索;
3.5 如何查找注释
B,打上断点break + 注释,在Alt + B中