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

这篇具有很好参考价值的文章主要介绍了“破解我!“---160个CrackMe练习001-Acid buen.exe。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

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

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

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

题目分析

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

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

要逆向或者破解一个程序,首先要了解它,先运行程序看看
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
俩个窗口,第一个无关紧要,第二个窗口有俩种验证方式。分别是:

  • Serial/Name
  • Serial

破解过程

Serial/Name验证方式

爆破

随便输入点东西运行看一下
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

打开x32dbg,搜索字符串,也可以点击上面工具栏。找到输入错误的提示。
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
双击过去,可以看到我们进入的位置是 0042FA63,我们一直往上翻可以找到一个 push ebp,对于一个程序的入口,一般都是push ebp,我们在程序入口打个断点方便调试。
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

打完断点就可以 Ctrl + F2 重启一下程序了,这次输入 sciurdae 123456看看,F9运行
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

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

走到第一处错误信息,也是cmp 和 jge处
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
这里上面一直在调用sciurdae ,下面 cmp 用eax 和 4比较, jge 是大于等于就跳转的指令, 这里小于4的话就会直接错误了,可以知道这里是在要求name的长度要大于等于4。(爆破的话,讲jge改成jmp无条件跳转(按空格就可以修改))

再一直往下

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
这里可以看到我们输入的密码,和一串很可疑的字符串。
并且下面就是正确结果,有一个call 和一个 jne 跳转 ;jne指令的意思是 不等于就跳转

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

爆破就是将jne指令直接nop掉就好。
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

注册机 追码

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

刚刚在爆破的过程中,我们发现了一串可以的字符串,用它也可以完成注册;但是如果我们换一下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"

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

刚执行完 movzx后,的情况。
“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
小端序存储,所以要读 07D9 ; 07D9 等于 0x29 * 0x31

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

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

往下看验证一下,

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
没有问题!

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验证

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
也是通过搜索字符串。往上看push ebp

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全
爆破的话就是nop掉 jne 不让它跳到报错去就好。 这里serial也已经给出来了。

“破解我!“---160个CrackMe练习001-Acid buen.exe,CrackMe,破解,CrackMe,加解密,Xdbg,逆向,网络安全

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

搞定。文章来源地址https://www.toymoban.com/news/detail-715324.html

到了这里,关于“破解我!“---160个CrackMe练习001-Acid buen.exe的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【001-Java基础练习】-适合初学者的练习

    用于巩固java基础知识,初学者多练多敲,熟悉代码,熟悉语法就ok。 练习1、从控制台获取Java、ps、HTML三门课程的成绩,计算总分和平均分(平均分保留2位小数,要求四舍五入),输出总分和平均分 练习2、控制台输入学生信息,学号 姓名 性别 年龄,控制台展示学生信息如

    2024年02月01日
    浏览(49)
  • 凯撒加解密和破解

            古典密码学是最基础的密码学问题,在古典密码学中,最为经典的就是凯撒密码。我们在这里简单介绍一下凯撒密码。         凯撒密码又称为凯撒加密,凯撒变换,变换加密,是一种最简单且为广为人知的加密技术。他就是一种替换加密。在明文中使用字母

    2024年02月11日
    浏览(36)
  • 三菱Q PLC解密 用户名&功能块FB破解

    1.对GX-WORK2软件在进行三菱Q系列编程,进行工程或者内部FB功能加密,可通过借助数据分析器对程序内部的数据分析,并定位汇,破解内部加密逻辑; 2.有需求破解可进行深入探讨交流;

    2024年02月12日
    浏览(63)
  • [已成功破解] 阿里 taobao 滑条验证码 x5sec解密 slidedata参数

    [已破解] 阿里 taobao 滑条验证码 x5sec解密 slidedata参数 今天在爬tb数据的时候 发现老是会触发一个滑块验证 只要过了这个滑块将滑块返回的x5secdata 的cookie 带到请求参数里面去 就能完美避开了 然后去抓了下滑块的包 过了这个滑块拿到cookie就能 访问阿里一直获取数据了 目前

    2024年02月11日
    浏览(35)
  • 【Python】编程练习的解密与实战(二)

    ​🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《Python | 编程解码》 ⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 ​ 目录 🪐1. 初识Python 🪐2. 实验报告二 🌍实验目的 🌍实验要求 🌍实验代码 🌍实验结果 🌍实验体会 📝总结

    2024年02月02日
    浏览(32)
  • 【Python】编程练习的解密与实战(四)

    ​ 🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《Python | 编程解码》 ⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🪐1. 初识Python 🪐2. 实验报告四 🌍实验目的 🌍实验要求 🌍实验代码 🌍实验结果 🌍实验体会 📝总结 P

    2024年02月02日
    浏览(30)
  • 【Python】编程练习的解密与实战(一)

    ​ 🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《Python | 编程解码》 ⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🪐1. 初识Python 🪐2. 实验报告一 🌍实验目的 🌍实验要求 🌍实验代码 🌍实验结果 🌍实验体会 📝总结 P

    2024年01月16日
    浏览(39)
  • 【Python】编程练习的解密与实战(三)

    ​🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《Python | 编程解码》 ⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🪐1. 初识Python 🪐2. 实验报告三 🌍实验目的 🌍实验要求 🌍实验代码 🌍实验结果 🌍实验体会 📝总结 Py

    2024年02月02日
    浏览(26)
  • defcon-quals 2023 crackme.tscript.dso wp

    队友找到的引擎TorqueGameEngines/Torque3D (github.com) 将dso文件放到data/ExampleModule目录下,编辑ExampleModule.tscript文件 然后点击主目录下的Torque3D-debug.bat就可以在生成的console.log文件里看到输出,发现使用的是getc获取输入,putc输出。 下载源码,在Enginesourceconsoleconsole.cpp中找到执行

    2024年02月07日
    浏览(31)
  • Hive ACID笔记

    环境:hive 3.1.0 执行引擎:hive on tez 什么是hive ACID? hive官网对于ACID的介绍: https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions 中文文档关于ACID的介绍: https://www.docs4dev.com/docs/zh/apache-hive/3.1.1/reference/Hive_Transactions.html 其实和传统数据库中所说的ACID有异曲同工之妙: 原子性

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包