分析abex-crackme#1
1、分析环境
- 操作系统:Win10 1809 x64
- 调试工具:Ollydbg
2、运行程序,了解大致的运行过程


3、运行Ollydbg调试程序
- 由于该程序是由汇编所写,可以直接看到main()函数

- 使用F8运行代码,并分析
- 其中
GetDriveTypeA是获取驱动器类型的API,一般返回3
- 其中

3.1、分析结果简述
- ESI初始值为0,经过3次加法运算得到结果为3
GetDriveTypeA获得的结果为3,经过2次减法运算得到结果为1由上述结果得知,
GetDriveTypeA经过2次减法运算得到结果为3才能跳转到正确的弹窗,即GetDriveTypeA的返回值为5通过查询MSDN确定
GetDriveTypeA的返回值为5的驱动器类型为CD-ROM结合弹窗的语句与MSDN可得出如下结论
结论:该程序是判断C盘驱动器是否为CD-ROM
4、破解
4.1、方法一
直接将程序读取的驱动器号改成操作系统的CD-ROM驱动器号。
例如:操作系统CD-ROM的驱动器号为d,直接修改了读取的驱动器号为d,相应的ASCII码为64,更改完毕之后运行程序。

4.2、方法二
修改汇编语句,将条件跳转改成无条件跳转
优点:如果打上补丁,该程序在任何Windows主机上运行都会弹出正确的弹窗

5、运行结果

6、与书中不同之处
- Win7和Win10环境下,MessageBoxA并没有将ESI置为FFFFFFFF。
分析abex-crackme#1的更多相关文章
- 分析abex'crackme#2
文件地址:https://www.wocloud.com.cn/webclient/share/sindex.action?id=i9K_Br6TgE4gbyGIlYkffWKcRy5TUdZ8U6_ ...
- 分析abex'crackme#1
测试文件下载:https://www.wocloud.com.cn/webclient/share/sindex.action?id=i9K_Br6TgE7Kf_YTF04yHmKcRy5TUdZ8U ...
- 看雪论坛 破解exe 看雪CTF2017第一题分析-『CrackMe』-看雪安全论坛
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 逆向 黑客 破解 学习 论坛 『CrackMe』 http://bbs.pediy.co ...
- RE-1 逆向分析基础
逆向分析基础 0x01-0x0C 本笔记使用汇编指令为x86架构下汇编指令,ARM架构汇编指令不做介绍 0x01. 关于RE 逆向工程(Reverse Engineering RE) 逆向分析方法: ...
- Reverse Core 第一部分 代码逆向技术基础
@date: 2016/10/14 <逆向工程核心原理>笔记 记录书中较重要的知识,方便回顾 ps. 因有一些逆向基础,所以我本来就比较熟悉的知识并未详细记录 第一章 关于逆向工程 目标, ...
- LoardPe与Import REC X64dbg脚本 脱壳 Upx
目录 LoardPe与Import REC X64dbg脚本 脱壳 Upx 一丶X64dbg调试器与脚本 1.1 起因 1.2 脚本的调试 1.3 Upx脱壳脚本 二丶LoardPe 内存Dump与I ...
- 初期web渗透的学习路线
成长路线 信息安全 前端安全 web安全 基础,书籍推荐 <网站入侵与脚本攻防修炼> 什么是web漏洞 什么是sql注入漏洞 什么是数据库 什么是文件上传漏洞 什么是跨站脚本攻击 < ...
- CrackMe005-下篇 | 逆向破解分析 | 160个CrackMe(视频+图文)深度解析系列
作者:逆向驿站微信公众号:逆向驿站知乎:逆向驿站 CrackMe005,上篇说了具体方法,下篇来发逆向分析过程,看看老夫是如何得到上篇的具体方法的! 准备 [环境和工具] win7/xp虚拟机环境 C ...
- 360破解大赛crackme分析--之3DES解密附加数据
具体的分析这里有.本人仅仅是对这里面有趣的算法进行了一些学习 分析链接 这次是逆向的使用3DES解密的过程中的内容: 使用微软的crypt库 使用3DES解密程序中的附加数据 代码: VOID enc ...
- 一个crackme的分析
是看雪合集的一个,因为老师让我们多练习,所以我就找了个crackme来练习 http://images2015.cnblogs.com/blog/638600/201612/638600-201612 ...
随机推荐
- Ehcache3.4 XML配置硬盘存储
最近开始学习使用Ehcache, 3.4的文档实在过于简单,尤其是对于XML配置,例子太少.相对于硬编码,我更偏爱灵活的XML配置,为了实现xml配置,摸索了两天,终于运行成功. ehcache.xm ...
- SSM框架指的是什么
SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成, 常作为数据源较简单的web项目的框架. 其中spring是一个 ...
- Nginx 负载配置
简版的,详细参数需要自己微调. nginx.conf http{ upstream name { server 127.0.0.1:8777; server 127.0.0.1:8778; serve ...
- wechat-plus 使用node开发微信公众号
github:https://github.com/liuyinglong/node-wechatnpm:https://www.npmjs.com/package/wechat-plus insta ...
- scrapy爬去京东书籍信息
# -*- coding: utf-8 -*- import scrapy import urllib import json from copy import deepcopy class JdSp ...
- vue项目中icon图标的完美引入
第一步: 进入阿里矢量图标库并登录 地址:https://www.iconfont.cn 第二步: 选择项目需要的图标添加到库 第三步: 选完之后点击右上角的购物车,打开后点击添加到项目,没有就自己建 ...
- make apr-util 报错 all recurisive
安装expat库: yum install expat-devel 再次make 即可.
- orcal - 分组
执行顺序 from where group by having select order by 多表查询与分组查询的时候,查询结果相当于是一张临时表,所有的分组是在临时表操作 分组统计查询 COUNT ...
- Django08-批量创建数据
通过views.py文件中创建 第1种方法循环创建数据, 这种方法不推荐,因为每一次循环都会连接一次数据库,效率较慢 def user_list(request): user_all = models ...
- ubuntu16下安装openssh
由于SecureCRT.xshell远程连接ubuntu是通过ssh协议的,所以,需要给ubuntu安装ssh服务器. 1. ssh协议科普 Secure Shell(缩写为SSH),由IETF的网络 ...