首先,打开软件,提示我们输入密码登录系统:
OllyDebug-软件破解常用方法
第一、二课:修改跳转语句–查找关键字符串
运行程序,查找登录失败的关键字,在反汇编窗口右键->中文搜索引擎->智能搜索中Ctrl+F查找关键字,然后双击跳转到反汇编窗口,一般在关键字前后会有一个验证密码之后的跳转,找到关键的跳转语句,如果密码输入错误,程序跳转的话,我们可以选中该跳转语句,右键->二进制->使用Nop指令填充跳转语句,不让程序跳转,反之,如果输入密码错误,程序不跳转,我们可以选中跳转语句,按下空格,将条件跳转语句改为jmp,无条件跳转,修改的跳转语句后面数字为虚拟地址,注意是十六进制格式,可以删除前面的X或者加上0X前缀。调试过程中,可以找到条件跳转语句下断点,观察程序的执行流程。
PE文件结构
什么是PE文件?
PE(Portable Execute)文件是Windows下可移植可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关。本文要说的PE文件结构,就是指的Window可移植可执行文件结构。
OllyDebug-去除NAG窗口
NAG本意是烦人的意思,NAG窗口是软件设计者用来时不时提醒用户购买正版的警告窗口。一般情况下,一个注册后的软件,是不会弹出NAG窗口的。所以,一般在程序启动的时候,会有一段代码检查改程序是否已经被注册,我们可以把这个程序的注册破解掉,NAG窗口即会自动消失。
运行程序:
今天的目的是去除打开程序时的弹窗和关闭程序时的弹窗。
OllyDebug-暴力破解TraceMe
首先来看下TraceMe这个序列号验证程序流程图:
计算机原理&汇编语言复习
寄存器
EAX:扩展累加寄存器
EBX:扩展基址寄存器
ECX:扩展计数寄存器
EDX:扩展数据寄存器
ESI:扩展来源寄存器
EDI:扩展目标寄存器
EBP:扩展基址指针寄存器
ESP:扩展堆栈指针寄存器,指向当前进程的栈空间地址。
EIP:扩展指令指针寄存器,指向下一条要被执行的指令。
寄存器的大小都是32bit,4个字节。
OllyDebug-修改提示框标题
软件运行效果如下:
如上图所示,软件的标题为“I love fishc.com”。使用OllyDebug将标题改为“I love 123456789”!
使用OllyDebug打开该程序,一路按F8,程序执行出弹窗,暂停在0X004011CE处,从右边的汇编代码中可以看出程序使用call指令调用了一个子函数:
软件逆向基础
调试逆向技术
动态分析技术:指的是使用调试工具加载程序并运行。
随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。
静态分析技术:是相对于动态分析而言的。
由于在实际分析中,很多场合不方便运行目标(例如病毒程序,设备不兼容,软件的单独某一模块)。那么这个时候静态分析技术就该上场了!
操作系统的内存管理
内存管理子系统是操作系统最重要的部分之一。从早期计算开始,系统的内存大小就难以满足人们的需要。为了解决这个问题,可利用虚拟内存。虚拟内存通过当需要时在竞争的进程之间共享内存,使系统显得有比实际上更多的内存空间。
OllyDebug-工具介绍
工具介绍
OD,软件名称,反汇编工具OD=OllyDebug,一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器。OllyDebug的使用界面是可视化操作,但是非常的占内存。