OD 实验(八) - 对一个程序的逆向】的更多相关文章

程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD 打开程序 首先把剩余 5 天的字符串作为切入点 先按 F9 运行一下程序 右键 -> 查找 -> 所有参考文本字串 右键 -> 查找文本 要把整个范围勾选上 继续查找看看,按 Ctrl+L 这个和第一个是一样的 双击第一个查找到的结果,跳到该字符串所在的位置 这个地方的上一条语句是一个 jn…
程序: 运行程序 弹出一个对话框,点击 OK 来到主界面,点击 Help -> Register Now 这是输入注册码的地方 按关闭程序的按钮 会提示剩下 30 天的使用时间 用 Resscope 载入程序 在 Dialog 下找到程序要退出时的那个对话框 在 100 处找到该对话框 103 为 lpTemplateName 对话框模板 逆向: 用 OD 载入程序 右键 -> 查找 -> 所有命令 64 为 100 的十六进制 找到很多 push 0x64 的指令 右键 -> 在…
程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一下 该程序是用 Microsoft Visual C++ 6.0 写的 逆向: 用 OD 载入程序 右键 -> 查找 -> 所有模块间的调用 键盘直接敲 getwindowtext 找到几个 GetWindowTextA,A 为 ASCII 码,W 为 Unicode 右键 -> 在每个调用…
程序: 这里有很多的动态链接库 双击运行程序 这个程序有次数限制 按钮也在隐藏处 主界面 退出程序,会弹出一个广告 目的: 让程序的使用次数不受限制,且没有显示次数的窗口 去除程序关闭时候的广告 逆向: 修改次数限制: 用 OD 打开程序 按 F8 走一下程序 程序在这里走到了一个循环,程序会在这个循环中走很久 要想退出这个循环,可以在 004BD452 处下一个断点,然后按 F9 然后接着往下走 当运行到这个地方的时候,就会启动程序 在这个地方应该按 F7 步入,而不是步过 要是步过,之后就会…
程序: 点击安装程序 这是一个拼图程序 点击 Options -> Flash Sizes 程序会提示是未注册版本 点击一些选项的时候会提示该程序只给注册的用户 点击 Register 随便输入一个密码,然后点击 OK 密码错误 用 PEiD 看一下该程序使用的是什么编译器 Microsoft Visual C++ 7.0 逆向: 用 OD 打开程序 首先先查找一下关键字 右键 -> 查找 -> 所有参考文本字串 拉到最顶端,右键 -> 查找文本 双击跟进该字符串所在的地方 这里有…
程序: 运行程序 点击 About 这是要注册的 点击 Register 输入邮箱和注册码,点击 Register Now 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本字串 搜索上图的内容 双击进去 上面有个 jnz 跳转指令 如果 jnz 实现跳转的话,就会提示注册成功 jnz 跳转语句上有个 test 指令 test al,al 判断 al 是否为 0 如果 al 为 0 的话,ZF 置 1,jnz 就不会实现跳转 所以 al 要为非零的数,jnz 才会实现跳转 al…
程序: 双击进行安装,安装过程默认就好了 安装完成 运行程序 输入 User 为 sch01ar,点击 Create 点击 Log In 这里显示为未注册版本 看看未注册版本有哪些功能被限制 这里会显示这个是未注册的版本,要在今天注册 最多只能创建 3 个组 每个组最多只能添加四个联系人 目标: 修改程序添加组和联系人的限制 修改程序中的未注册的提示信息 实战: 用 OD 打开程序 该可执行文件在安装目录下 联系人数量的突破 按 F9 运行 再次试图新建一个联系人,还是不行 按 F12 暂停运行…
程序: 打开程序 出现一个 NAG 窗口 这是主界面 点击 Exit 程序出现 NAG 窗口,然后退出 用 PEiD 看一下 是用 VC++ 6.0 写的程序 逆向: 用 OD 载入程序 跑一下程序 出现 NAG 窗口时暂停 按 Alt+K 显示调用堆栈 这个是 MFC 的对话框,双击来到它所在的地方 下一个断点,重新跑一下程序 OD 停在了断点处 按 F8 往下走一步 NAG 窗口出现了 过了几秒就往下走了一步了 按 F9 运行 程序又停在了这个断点处 按一下 F8 主窗口出现了 点击 Exi…
前话: VB 程序用 OD 进行逆向的话,可以先查找相关的变量和字符串,以寻找突破口 变量: __vbaVarTstEq __vbaVarCompEq __vbaVarTstNe __vbaVarCompLe __vbaVarCompLt __vbaVarCompGe __vbaVarCompGt __vbaVarCompNe 字符串: __vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp __vbaStrT…
写了这么久的读书笔记,涉及到问题大多是一些如何把软件工程做好,如何把自己的职业生涯做好.但总感觉逻辑链上缺了一环,亦即:我们为什么要把软件工程做好,我们成为一名优秀的职业生涯的意义到底在于什么?我觉得如果这个问题不去想,那么这段三段论便不是完整的,不知道为什么要做的事情而去做,未免太浑浑噩噩了,说实话,就有点行尸走肉的感觉. 本来以为程序员的自我修养这本书能够解答我心中的疑惑,然而翻开这本书,却是一些列关于系统软件如何运行和装载的问题.窃以为,如果是关于这种如何提高自身技能的书,不应该用<程序员…