OD 实验(二十) - 对反调试程序的逆向分析(一)
程序:

Keyfile.dat 里的内容

该文件中要至少有 9 个
ReverseMe.A:
运行程序

用 OD 打开该程序,运行

弹出的是错误的对话框
该程序发现 OD 对它的调试,所以该程序对 OD 进行反调试
重新载入程序,按 F8 往下走

这个循环是对 Keyfile.dat 的内容进行判断的
循环过来,来到一个 call 语句

执行该 call 语句就会弹出那个弹窗

这个 call 指令调用的函数就在下面

这个地方调用了一个 IsDebuggerPresent 函数
该函数判断程序进程是否由用户模式的调试器调试,如果当前进程在调试器中,返回值为非零值,如果当前进程不在调试器中,返回值为零
按 F8 往下走

返回值 eax 的值为 1,是非零

然后执行跳转,跳到弹出是错误的对话框
Reverse.B:
运行程序

用 OD 载入程序,运行

程序运行到该处会暂停,再运行

程序就终止了
重新载入程序,按 F8 一步一步往下走

这里还是执行了 call 指令

调用 IsDebuggerPresent 函数
接着往下走

把 esp 给 401121
继续运行程序,程序就终止了
Reverse.C:
运行程序

用 OD 载入程序,运行

程序直接终止了
重新载入程序,按 F8 往下走

执行 call 指令之后会先用 IsDebuggerPresent 函数进行判断是否被反调试

eax 的值为 1,执行跳转,然后执行 ExitProcess 函数退出程序
Reverse.D:
运行程序

用 OD 载入程序,运行

重新载入程序,按 F8 往下走

这里 eax 为 1 的话,跳转到 jmp eax 这
此时 eax 的值为 1,jmp eax 跳转到此处的话肯定会出错
OD 实验(二十) - 对反调试程序的逆向分析(一)的更多相关文章
- OD 实验(二十一) - 对反调试程序的逆向分析(二)
程序: 运行程序 点击“Verify” 关闭该程序,启动 OD 再运行程序 逆向: 用 OD 载入程序 按 F8 往下走 执行完这个 call 指令就弹出了对话框 这个 call 指令调用了 Dial ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十:SDRAM模块③ — 页读写 α
实验二十:SDRAM模块③ — 页读写 α 完成单字读写与多字读写以后,接下来我们要实验页读写.丑话当前,实验二十的页读写只是实验性质的东西,其中不存在任何实用价值,笔者希望读者可以把它当成页读写的热 ...
- 【iCore3 双核心板_FPGA】实验二十八:基于SDRAM 的VGA 驱动器的设计
本实验设计的VGA显示驱动完全基于FPGA实现,用SDRAM做缓存设备,通过ARM控制VGA显示的内容.ARM 通过FSMC总线向FPGA发送数据,由于总线的速度和VGA的显示速度与SDRAM的读写速 ...
- 【iCore3 双核心板_FPGA】实验二十六:SDRAM读写测试实验
实验指导书及代码包下载: http://pan.baidu.com/s/1c1VRibY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板_FPGA】实验二十五:NIOS II之UART串口通信实验
实验指导书及代码包下载: http://pan.baidu.com/s/1eRMZq18 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板_FPGA】实验二十:基于FIFO的ARM+FPGA数据存取实验
实验指导书及代码包下载: http://pan.baidu.com/s/1cmisnO iCore3 购买链接: https://item.taobao.com/item.htm?id=5242294 ...
- 【iCore3 双核心板_FPGA】实验二十二:Niosii——固化程序到 EPCS 里
实验指导书及代码包下载: http://pan.baidu.com/s/1c2lyNQS iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板_FPGA】实验二十四:Niosii——SDRAM读写实验
实验指导书及代码包下载: http://pan.baidu.com/s/1c2xAJT2 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- OD 实验(二) - 绕过序列号验证
需要破解的程序 输入用户名和序列号,点击 Check,程序会进行校验 用 OD 打开程序 按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA 点击 ok 在这里调用了 GetDlgI ...
随机推荐
- Faster R-CNN改进篇(二): RFCN ● RON
@改进1:RFCN 论文:R-FCN: Object Detection via Region-based Fully Convolutional Networks [点击下载] MXNet代码 ...
- Java property 的加载读取
方法一 Properties properties = new Properties(); InputStream stream = PropertiesUtil.class.getClassLoad ...
- 十图详解TensorFlow数据读取机制(附代码)
在学习TensorFlow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料.今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下 ...
- caffe 学习记录1及网络结构
ubuntu git clone 默认在当前文件夹 caffe 基础了解:https://www.zhihu.com/question/27982282/answer/39350629 当然,官网才是 ...
- BD09坐标(百度坐标) WGS84(GPS坐标) GCJ02(国测局坐标) 的相互转换
BD09坐标(百度坐标) WGS84(GPS坐标) GCJ02(国测局坐标) 的相互转换 http://www.cnphp6.com/archives/24822 by root ⋅ Leave a ...
- 【备份】 解决acer v5 471g arch关机后自动重启的问题
Fedora 17 on an Aspire V5-571 -- Reboot on Shutdown13 FEBRUARY 2015Update on 2/13/15: This article w ...
- Android上玩玩Hook:Cydia Substrate实战
作者简介:周圣韬,百度高级Android开发工程师,博客地址:http://blog.csdn.net/yzzst 了解Hook 还没有接触过Hook技术读者一定会对Hook一词感觉到特别的陌生,Ho ...
- postcss gulp 安装使用
备注: 测试使用的是gulp 进行的编译 1. 项目初始化 npm init mkdir src touch app.css body{ display: flex; } 2. 安装(gulp ...
- JS实现动态提示框
引言 什么项目都有个需求,应开发需求,需要写一个公式编辑器选择公式的插件,下面给大家讲一下实现过程.(擦汗,强作淡定,咳,开嗓~) 看图说话 本小菜开发功能前乐于先写个需求思维导图(纯属个人爱好): ...
- filter添加水印
1filter写法 先定义自己的responseWrapper chain.doFilter(request,responseWrapper); responseWrapper来输出 package ...