动态调试-OD

OllyDbg(以其作者Oleh Yuschuk的名字命名)是一个x86 调试器,它着重于二进制代码分析。可以跟踪寄存器,识别过程API调用,开关常量字符串

界面功能

od1

快捷键

od02

破解方向(无壳)

  • 从消息框入手(MessageBox, GetDlgItemTextA…)
  • 从提示字符串入手
    • 比如提示消息窗口时暂停程序然后从调用堆栈里查找关键信息
    • 直接查找字符串跟随地址分析

不建议不断使用断点进行调试, 大概率陷入死循环(windows使用消息队列将各种操作分配给应用程序, 如果没有从窗口执行操作, 那会导致消息队列为空, 导致循环)

去除NAG窗口

Nag窗口就是软件的提示注册信息

找到调用窗口函数后可以通过以下方式解决它

  • 改标志位
  • 改跳指令(比如je–>jmp)
  • 使用nop填充(一个nop占一字节)
  • 使窗口父句柄不存在
  • 改入口地址(PE头的AddressOfEntryPoint)

技巧

  • call的返回值会赋值给EAX
  • 找关键语句时需要注意领空, 一般修改的都是程序的领空而不是系统API的领空

术语参照

  • 领空: 在某时刻CPU执行的代码的所有者, 004013F7一般是执行文件的领空, 7C8114AB一般是DLL的领空
  • VA(VirtualAdress)
  • RVA(RelativeVirtualAddress)
  • EP(EntryPoint)
  • SEH(Structrued Exception Handling)
作者

manu

发布于

2021-04-07

更新于

2023-01-06

许可协议


:D 一言句子获取中...