随笔分类 - 逆向工程
摘要:先用 PEiD 看一下 MEW 11 1.2 的壳 用 OD 载入程序 按 F8 进行跳转 往下拉 找到这个 retn 指令,并下断点 然后 F9 运行 停在该断点处后再按 F8 右键 -> 分析 -> 分析代码 找到了程序的 OEP,右键 -> Dump debugged process 点击“D
阅读全文
摘要:先用 PEiD 查一下壳 用 OD 载入程序 这里有一串字符串,是壳的名称和版本号 按 Alt+M 显示内存窗口 这里只有三个区段,后面两个是壳生成的,程序的代码段也包含在里面 利用堆栈平衡 按 F8 往下走一步 然后到数据窗口中设置断点 选择 -> 断点 -> 硬件访问 -> Dword 然后跑一
阅读全文
摘要:前言: 输入表又称导入地址表(Import Address Table),简称 IAT API 函数被程序调用但执行代码又不在程序中,而是位于一个或者多个 DLL 中 当 PE 文件被装入内存的时候,Windows 装载器才将 DLL 装入,并将调用导入函数的指令和函数实际所处的地址联系起来(动态连
阅读全文
摘要:程序: 运行程序 用 PEiD 查壳 EZIP 1.0 用 OD 打开 按 F8 往下走 这个看似是 OEP 的地方却不是 OEP 因为代码段从 00401000 开始 可以看到,壳伪造了 3 个区段 重新载入程序,观察 ESP 的变化 此时是 0012FFC4 F8 往下走 走到这里的时候,ESP
阅读全文
摘要:程序: 运行 用 PEiD 载入程序 PEid 显示找不到相关的壳 脱壳: 用 OD 载入程序 这个是壳的入口地址 因为代码段的入口地址为 00401000 这三个是壳增加的区段 按 F8 往下走程序 经过这个 call 指令的时候,运行的时间多了一会 这个 jmp 将跳转到 004271B0 按
阅读全文
摘要:程序: 运行程序 点击“Verify” 关闭该程序,启动 OD 再运行程序 逆向: 用 OD 载入程序 按 F8 往下走 执行完这个 call 指令就弹出了对话框 这个 call 指令调用了 DialogBoxParam 函数创建模态对话框 如果步入该函数的话,会跳到动态链接库中 如果按 Alt+F
阅读全文
摘要:程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 OD 进行反调试 重新载入程序,按 F8 往下走 这个循环是对 Keyfile.dat 的内容进行判断
阅读全文
摘要:程序: 这个窗口显示这是一个需要去除的 Nag 窗口 点击“确定” 用 PEiD 看一下 这是一个用汇编语言写的程序 逆向: 用 OD 载入程序 Nag 窗口的标题和文本 右键 -> 查找 -> 所有参考文本字串 只有这两条 下一个断点,跑一下程序 该 NAG 窗口还是弹出来了 点击“确定” 然后关
阅读全文
摘要:程序: 运行 这是一个注册机 随便输入点内容,点击 Check 弹出错误的对话框 逆向: 用 OD 载入程序 在文本框处下断点 按 Alt+B 查看断点 这个断点在动态链接库那里 跑一下程序,输入内容,点击 check 程序停在断点处 在动态链接库的断点处不能进行跟踪和修改 按 Alt+F9 让其回
阅读全文
摘要:程序: 运行程序 弹出一个对话框,点击 OK 来到主界面,点击 Help -> Register Now 这是输入注册码的地方 按关闭程序的按钮 会提示剩下 30 天的使用时间 用 Resscope 载入程序 在 Dialog 下找到程序要退出时的那个对话框 在 100 处找到该对话框 103 为
阅读全文
摘要:对话框: 对话框从类型上分为两类:modal 对话框和 modeless 对话框,就是模态对话框和非模态对话框,也有叫成模式和非模式 模态对话框不允许用户在不同窗口间进行切换,非模态对话框允许用户在不同窗口间进行切换 两者形成区别的原理是模态对话框由 windows 为它内建一个消息循环,而非模态对
阅读全文
摘要:程序: 打开程序 出现一个 NAG 窗口 这是主界面 点击 Exit 程序出现 NAG 窗口,然后退出 用 PEiD 看一下 是用 VC++ 6.0 写的程序 逆向: 用 OD 载入程序 跑一下程序 出现 NAG 窗口时暂停 按 Alt+K 显示调用堆栈 这个是 MFC 的对话框,双击来到它所在的地
阅读全文
摘要:内嵌补丁(inline patch): 内嵌补丁指在程序文件中把补丁代码写入文件里面达到破解的目的 如果修改某行语句会影响后面的语句,例如某语句占用 3 个字节,修改完变为 5 个字节,会覆盖后面的语句,这时就需要用到内嵌补丁 程序: 运行程序 NAG 窗口显示只有 30 天的试用期,点击 Cont
阅读全文
摘要:程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一下 该程序是用 Microsoft Visual C++ 6.0 写的 逆向: 用 OD 载入程序 右键
阅读全文
摘要:程序: 运行程序 界面显示的是未注册 点击 Help -> About 点击 Use Reg Key 这里输入注册码 用 PEiD 看一下 该程序是用 Delphi 6.0 - 7.0 写的 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本字串 然后右键 -> 查找文本 搜索 这里有
阅读全文
摘要:程序: 点击安装程序 这是一个拼图程序 点击 Options -> Flash Sizes 程序会提示是未注册版本 点击一些选项的时候会提示该程序只给注册的用户 点击 Register 随便输入一个密码,然后点击 OK 密码错误 用 PEiD 看一下该程序使用的是什么编译器 Microsoft Vi
阅读全文
摘要:前话: VB 程序用 OD 进行逆向的话,可以先查找相关的变量和字符串,以寻找突破口 变量: __vbaVarTstEq __vbaVarCompEq __vbaVarTstNe __vbaVarCompLe __vbaVarCompLt __vbaVarCompGe __vbaVarCompGt
阅读全文
摘要:程序: 运行程序 点击 About 这是要注册的 点击 Register 输入邮箱和注册码,点击 Register Now 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本字串 搜索上图的内容 双击进去 上面有个 jnz 跳转指令 如果 jnz 实现跳转的话,就会提示注册成功 jnz
阅读全文
摘要:ja 跳转指令,条件:CF=0 和 ZF=0 jab 跳转指令,条件:CF=0 jb 跳转指令,条件:CF=1 jbe 跳转指令,条件:CF=1 或者 ZF=1 jc 跳转指令,条件:CF=1 jcxz 跳转指令,条件:CX=0 je 跳转指令,条件:ZF=1 jecxz 跳转指令,条件:ECX=0
阅读全文
摘要:程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD 打开程序 首先把剩余 5 天的字符串作为切入点 先按 F9 运行一下程序 右键 -> 查找 -> 所有参考文本字
阅读全文