“破解我!“---160个CrackMe练习001-Acid buen.exe

文章目录

  • 前言
  • 题目分析
  • 破解过程
    • Serial/Name验证方式
      • 爆破
      • 注册机 追码
    • Serial验证

前言

想开个系列,160个Crackme的练习,这个在52pojie上有个精华帖总结,写的特别好,推荐!写这个系列主要还是记录一下自己的学习记录,目前就完成了几十个,还有好多/(ㄒoㄒ)/~~,加油。坚持每天至少练一题,希望可以帮到你。

52pojie上用的是OD,OD很老了已经,而且我自己之前练的时候照着做也有几次出bug解决不了,后面改用的xdbg,所以推荐用xdbg来调试。

CrackMe 翻译是 破解我 ,我觉得蛮有趣的,可以很好的锻炼到逆向思维和动态调试能理,最主要的还是好玩,毕竟我觉得学习还是要以兴趣为主的。

题目在52pojie可以免费下载。
https://www.52pojie.cn/thread-709699-1-1.html

题目分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 文件位数:32bit
  • 编程语言:Delphi
  • 壳:无壳

要逆向或者破解一个程序,首先要了解它,先运行程序看看
在这里插入图片描述
在这里插入图片描述
俩个窗口,第一个无关紧要,第二个窗口有俩种验证方式。分别是:

  • Serial/Name
  • Serial

破解过程

Serial/Name验证方式

爆破

随便输入点东西运行看一下
在这里插入图片描述

打开x32dbg,搜索字符串,也可以点击上面工具栏。找到输入错误的提示。
在这里插入图片描述
在这里插入图片描述
双击过去,可以看到我们进入的位置是 0042FA63,我们一直往上翻可以找到一个 push ebp,对于一个程序的入口,一般都是push ebp,我们在程序入口打个断点方便调试。
在这里插入图片描述

打完断点就可以 Ctrl + F2 重启一下程序了,这次输入 sciurdae 123456看看,F9运行
在这里插入图片描述

点击 check后就会发现程序断在了 push ebp处。
这个时候就 F8 单步走,边走边看。

走到第一处错误信息,也是cmp 和 jge处
在这里插入图片描述
这里上面一直在调用sciurdae ,下面 cmp 用eax 和 4比较, jge 是大于等于就跳转的指令, 这里小于4的话就会直接错误了,可以知道这里是在要求name的长度要大于等于4。(爆破的话,讲jge改成jmp无条件跳转(按空格就可以修改))

再一直往下

在这里插入图片描述
这里可以看到我们输入的密码,和一串很可疑的字符串。
并且下面就是正确结果,有一个call 和一个 jne 跳转 ;jne指令的意思是 不等于就跳转

(我们也知道我们输入的肯定不是正确的serial,所以这里 就是 用 正确的和我们 的比较,最后验证会失败)

爆破就是将jne指令直接nop掉就好。
在这里插入图片描述

注册机 追码

在这里插入图片描述

刚刚在爆破的过程中,我们发现了一串可以的字符串,用它也可以完成注册;但是如果我们换一下name,这串serial就没有用了,说明,serial 是在程序中动态生成了,那么问题就来了?

如何在不改变程序的情况下,成功破解程序呢,这就是注册机了。

Keygen(注册机)是短语密钥生成器的缩写形式。这是一个小型程序,可为软件生成有效的CD密钥或序列号(注册)。

如何来实现这个注册机。

输入 123456 的name 方便调试。继续运行程序,让程序断在 push ebp处。

0042FA87 | 8B45 F0                  | mov eax,dword ptr ss:[ebp-10]           | [dword ptr ss:[ebp-10]]:"123456"      
0042FA8A | 0FB600                   | movzx eax,byte ptr ds:[eax]             | 这里就是取了 '1' 出来存到 eax中;
0042FA8D | F72D 50174300            | imul dword ptr ds:[431750]              |0x31'1') 去乘以 29 (ds:[431750]中的值)
0042FA93 | A3 50174300              | mov dword ptr ds:[431750],eax           | 
0042FA98 | A1 50174300              | mov eax,dword ptr ds:[431750]           | 
0042FA9D | 0105 50174300            | add dword ptr ds:[431750],eax           | 前面用eax覆盖了ds:[431750]中,现在又加上eax,实际上就是 * 2 的操作
0042FAA3 | 8D45 FC                  | lea eax,dword ptr ss:[ebp-4]            |
0042FAA6 | BA ACFB4200              | mov edx,acid burn.42FBAC                | 42FBAC:"CW"
0042FAAB | E8 583CFDFF              | call acid burn.403708                   |
0042FAB0 | 8D45 F8                  | lea eax,dword ptr ss:[ebp-8]            | # 这里就是 连接上这俩个字符串
0042FAB3 | BA B8FB4200              | mov edx,acid burn.42FBB8                | 42FBB8:"CRACKED"

在这里插入图片描述

刚执行完 movzx后,的情况。
在这里插入图片描述
小端序存储,所以要读 07D9 ; 07D9 等于 0x29 * 0x31

在这里插入图片描述

执行add后, 0FB2 ; 0FB2 等于 07D9 * 2; 0x0FB2转换为十进制就是 4018

往下看验证一下,

在这里插入图片描述
没有问题!

Keygen:

def keygen(serial):
    key = ord(serial[:1])
    print(key)
    if key > 0x21:                # 要可见字符
        key = key * 0x29 * 2
        print(f"Serial: CW-{key}-CRACKED")
    else:
        print('input error !')


if __name__ == '__main__':
    serial = input('please input something here:')
    keygen(serial)

之前用C写的,试一试用 python写。

Serial验证

在这里插入图片描述
也是通过搜索字符串。往上看push ebp

在这里插入图片描述
爆破的话就是nop掉 jne 不让它跳到报错去就好。 这里serial也已经给出来了。

在这里插入图片描述

这个验证是固定的验证码,不用keygen了。

搞定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/109019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

26 行为型模式-命令模式

1 命令模式介绍 2 命令模式原理 3 命令模式实现 模拟酒店后厨的出餐流程,来对命令模式进行一个演示,命令模式角色的角色与案例中角色的对应关系如下: 服务员: 即调用者角色,由她来发起命令. 厨师: 接收者,真正执行命令的对象. 订单: 命令中包含订单 /*** 订单类**/ public cl…

✔ ★【备战实习(面经+项目+算法)】 10.29学习

✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…

Android [SPI,AutoSerivce,ServiceLoader]

记录一下在Android中使用SPI的过程。 1.项目gralde文件。 plugins {id kotlin-kapt } dependencies {implementation com.google.auto.service:auto-service:1.0-rc7 kapt "com.google.auto.service:auto-service:1.0-rc7" } 这个AutoServ…

Visual Studio 2019部署桌面exe(笔记)

一、使用Visual Studio自带的Publish功能 上述两张图片一般会自动加载,只需要查看一下即可。 签名问题: 生成exe执行文件 双击setup.exe 桌面生成(默认图标) 换图标: 对应桌面生成的exe

网络安全(黑客)—小白自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

ES性能优化最佳实践- 检索性能提升30倍!

Elasticsearch是被广泛使用的搜索引擎技术,它的应用领域远不止搜索引擎,还包括日志分析、实时数据监控、内容推荐、电子商务平台、企业级搜索解决方案以及许多其他领域。其强大的全文搜索、实时索引、分布式性能和丰富的插件生态系统使其成为了许多不同行…

RTE(Runtime Environment)

RTE(Runtime Environment)是一个运行时环境,在这个环境里,你可以实现的功能是: 作为一个缓冲buffer给应用层和BSW层的接口(例如COM)用来存储数据,也就是说定义一个全局变量供上层和下…

SAP业务从ECC升级到SAP S/4HANA有哪些变化?有哪些功能得到增强?

SAP在2015年推出了新一代商务套件SAP S/4 HANA。 SAP S/4 HANA (全称SAP Business suite 4 SAP HANA),这款新产品完全构建于目前先进的内存平台SAP HANA 之上,同时采用现代设计理念,通过SAP Fiori 提供精彩的用户体验 (UX)。提供比ECC更强大的功能。S/4h…

[SpringCloud] Nacos 简介

目录 一、Nacos,启动! 1、安装 Nacos 2、运行 Nacos 3、Nacos 服务注册 二、Nacos 服务多级存储模型 1、服务跨集群分配 2、NacosRule 负载均衡(优先本地) 3、服务实例的权重设置 4、环境隔离 三、Nacos 注册中心细节分…

[毕设记录]@开题调研:一些产品

我感觉产品能代表落地的一些实际应用,会和研究的角度有些差别,但是需求和兴趣往往是从现实中来的,在上一篇blog里面看外国blog的时候顺着搜搜到了很多国外的智慧校园chatbot解决方案 文章目录 Comm100streebomodern campusUniBuddy Comm100 …

私有云:【9】Connection配置

私有云:【9】Connection配置 1、关闭IE增强配置2、Connection配置2.1、登录connection管理台配置许可证2.2、添加VCenter主机2.3、配置Composer 1、关闭IE增强配置 关闭此项 全部关闭 2、Connection配置 2.1、登录connection管理台配置许可证 上一章connection…

Lua脚本语言

1. 概念 Lua(发音为"loo-ah",葡萄牙语中的"lua"意为月亮)是一种轻量级的、高效的、可嵌入的脚本编程语言。官网Lua最初由巴西计算机科学家Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开…

深度神经网络的数学原理:基于超平面、半空间与线性区域的表示

概述 以前的文章主要描述了神经网络,即多层感知机、全连接模型的运行原理,还是以实验为主,数学描述为辅的方式,这篇文章以纯数学的视角来描述神经网络的运行原理,主要以前馈过程为主(反向传播的动力学过程…

python爬虫selenium和ddddocr使用

python爬虫selenium和ddddocr使用 selenium使用 selenium实际上是web自动化测试工具,能够通过代码完全模拟人使用浏览器自动访问目标站点并操作来进行web测试。 通过pythonselenium结合来实现爬虫十分巧妙。 由于是模拟人的点击来操作,所以实际上被反…

N-130基于springboot,vue校园社团管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本系…

mac安装nodejs,跑vue程序

1. 下载node.js for mac,地址:Node.js。一路安装就可以了,无需修改。 2. mac终端,查看node和npm的版本。 3. 配置环境变量, vim .bash_profile增加PATH$PATH:/usr/local/bin/ 4. 但是毕竟npm安装一些东西还是太慢了所…

Godot 官方2D C#重构(4):TileMap进阶使用

文章目录 前言完成内容项目节点结构TileMap设置图片资源备选图片添加物理碰撞添加y轴遮罩判断Y Sort Enable是干什么的? 脚本代码 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 完成内容 项目节点结构 TileMap设置 图片资源 备选图…

IDEA常用的一些插件

1、CodeGlance 代码迷你缩放图插件,可以快速拖动代码,和VScode一样 2、Codota 代码提示工具,扫描你的代码后,根据你的敲击完美提示。 Codota基于数百万个开源Java程序和您的上下文来完成代码行,从而帮助您以更少的…

云游长江大桥,3DCAT实时云渲染助力打造沉浸化数字文旅平台

南京长江大桥是中国第一座自主设计建造的双层公路铁路桥,也是世界上最早的双层公路铁路桥之一。它不仅是一座桥梁,更是一座历史文化的见证者和传承者。它见证了中国人民的智慧和奋斗,承载了中国社会的变迁和发展。 如何让这座不可移动的文物…

简单方法搭建个人网站

随着互联网的发展,越来越多的人希望拥有一个属于自己的网站,用来展示自己的个人才华、推广自己的产品或服务。但是,很多人都因为没有编程知识而望而却步。现在,有一个简单的方法可以帮助你轻松搭建网站,无需编程知识。…