“破解我!“---160个CrackMe练习002-Afkayas.1.Exe

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

前言

系列之002,记录学习。


题目分析

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
一道一星的题目

惯例查壳。
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
32-bit的文件,用的是 VB 写的。

关于Visual Basic

Visual Basic(VB)是由微软公司开发的包含环境的事件驱动编程语言。它源自于 BASIC 编程语言。VB 拥有图形用户界面(GUI)和快速应用程式开发(RAD)系统,可以轻易的使用 DAO、RDO、ADO 连接数据库,或者轻松的创建 ActiveX 控件。程序员可以轻松地使用 VB 提供的组件快速建立一个应用程序。

虽然VB现在已经不再更新了,但是并不妨碍我们的学习。

也是惯例,运行程序观察一下

!这里会出现一个问题(我不同虚拟机都遇到过)
就是找不到msvbvm50.dll的问题,这里可以上https://cn.dll-files.com/msvbvm50.dll.html下载。
然后放到文件夹下:

把文件放到你的系统路径。它的默认路径是在:
C:\Windows\System (Windows 95/98/Me),
C:\WINNT\System32 (Windows NT/2000),
C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10).
在 64位 Windows 上,32位 DLL 文件的默认路径是
C:\Windows\SysWOW64\, 64 位 DLL 文件在
C:\Windows\System32\ 。
确保覆盖已有的全部文件(但保留一个原文件备份)。
重启电脑。

然后就解决问题了。

重新运行程序。

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
name + serial 的验证方式,看起来和上一题差不多;

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全


程序分析

载入xdbg后,搜索字符串,找到 You Get Wrong这句话,点击过去。

这里除了搜索字符串还可以根据调用堆栈的情况来找到此处,在运行程序后输入name和serial,弹出错误信息后不点击确定,而是返回xdbg查看堆栈情况 Alt+K,
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
找到一个,虽然都是msvbvm50的函数,大部分都看不懂,但是这一个的返回地址是在00402622,比较符合我们的预期,一般00400000是整个程序的开始。所以这里点击这个rtcMsgBox右键跟随目标。然后往上翻一点就可以看到错误信息了。

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

接着往上一直翻, 继续在 push ebp处打下断点, 这次是在00402310处。

在向上的过程中,你会看到一个
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
正确信息和 一个je 跳转 ,je指令的跳转是根据ZF标志位来进行的,ZF标志位为 1 的时候实现跳转。

因此这里第一种爆破方式就是 直接 nop 掉 je指令;

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

第二种就是 在运行到je指令的时候 将 ZF标志位手动改成 0 ;

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

还有第三种就是 修改 test指令, 因为test本质上是 and 指令 ,如果 and 结果为 0 就会将ZF标志位置为1.
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

Keygen

重新运行一下程序,因为需要把我们先前做的更改去掉。

这里依旧在push ebp处打下断点,然后让程序自动断在此处。开始一步一步向下追码,先F8单步步过就好。

一直到
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

xdbg的功能蛮强大的,很多注释都会给出来,(当然那几串中文是自己注释的)

一般在临近 有 000111出现的地方,(这次的输入是 000111 + 123456)就该注意了

这里显示call 调用了一个函数,可以看到Len B str 就像是计算字符串长度,也可以上网查阅相关信息;

在调用后

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

eax 变成了 6 也可以验证我们的猜想,你也可以尝试不同的输入,去验证。

接着向下, 用 imul 乘以一个固定的值 17CFB 接着 再加上 '0’的 hex值也就是 0x30

这里得出的结果是 8EE12 转换成十进制 585234
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
再接着一直往下跑,

“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全

会先看到一个 AKA- 再接着又是一个 VB函数 写着 Str Move 这里的意思很明白了,拼接字符串的意思

那么我们的serial 也就出来了 AKA-585234
“破解我!“---160个CrackMe练习002-Afkayas.1.Exe,CrackMe,学习,CrackMe,Reverse,破解,网络安全
验证成功 ,开始写 Keygen。文章来源地址https://www.toymoban.com/news/detail-734962.html

def keygen(name):
    key = ord(name[:1]) + len(name) * 0x17CFB
    print(f"Your serial : AKA-{key}")


if __name__ == "__main__":
    name = input("please enter your name: ")
    keygen(name)

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

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

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

相关文章

  • WebUI自动化学习(Selenium+Python+Pytest框架)002

    New Project 新建一个python代码文件 file-new-python file 会自动创建一个.py后缀的代码文件 注意:命名规则,包含字母、数字、下划线,不能以数字开头,不能跟python或包名重复。 ********************华丽分割线******************************************************         单行注释:以#+一个空

    2024年02月02日
    浏览(35)
  • Crackme逆向分析365例-001

    说明:本篇练习是表哥逆向分析365系列的第1例,所使用的CrackMe本体来自于网站:https://crackmes.one/,您可在此网站通过作者名或本体名查询下载,也可从本贴中提供的网盘地址下载,其CrackMe本体信息如下所示: 本体名称: [EASY] CrackMe 本体作者: endofmarconia 上传日期: 2023-0

    2024年02月04日
    浏览(21)
  • 【深度学习】002-损失函数:MSE、交叉熵、铰链损失函数(Hinge Loss)

    目录 前言 一、均方误差损失函数(The Mean-Squared Loss)       1.1、从线性回归模型导出均方误差函数       1.2、均方误差函数的使用场景       1.3、均方误差函数的一些讨论 2、交叉熵损失函数(The Cross-Entropy Loss)       2.1、从softmax运算到交叉熵       2.2、信息论

    2024年02月05日
    浏览(33)
  • 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日
    浏览(22)
  • 【AWVS破解安装学习】

    目录 前言   安装 破解 功能界面  总结   Acunetix Web Vulnerability Scanner(AWVS)是用于测试和管理Web应用程序安全性的平台,现如今是BS架构。能够自动扫描互联网或者本地局域网中是否存在漏洞,并报告漏洞。可以扫描任何通过Web浏览器访问和遵循HTTP/HTTPS规则的Web站点。适用

    2024年01月19日
    浏览(32)
  • 逆向破解学习-单机斗地主

    9000 是成功的代码 ` import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ @Override public String packageName() { return “com.june.game.doudizhu”; } } `

    2024年02月13日
    浏览(42)
  • Zinx框架-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

    三层结构重构原有功能 自定义消息类,继承UserData,添加一个成员变量szUserData 定义多个Role类继承Irole,重写ProcMsg函数,进行不同处理 定义protocol类,继承Iprotocol,重写四个函数,两个函数时原始 数据和用户数据之间的转换;另两个用来找消息处理对象和消息发 送对象。 定

    2024年02月05日
    浏览(45)
  • Dvwa之暴力破解全级别学习笔记

    暴力破解也可称为穷举法、枚举法,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为止。设置长而复杂的密码、在不同的地方使用不同的密码、避免使用个人信息作为密码、定期修改密码等是防御暴力破解的有效方法。但从理论上来说,只要字典足

    2024年02月02日
    浏览(28)
  • BUUCTF-reverse-reverse1(面向新手超详细)

    拿到题目先查下壳(这里用的DIE,网上可以搜到下载)  64位,没有壳(壳是对代码的加密,起混淆保护的作用,一般用来阻止逆向) 然后拖进IDA(64位)进行反汇编 一般来说,先查看一下字符串,简单的题目会有flag或者敏感数据字符等信息,方便我们定位函数查看字符串的方

    2023年04月08日
    浏览(22)
  • 吾爱破解安卓逆向入门教程学习心得(1-4)

    b站视频链接:https://www.bilibili.com/video/BV1wT411N7sV/?vd_source=f767aeec67fd5d5cc2f6ff3e890917d0 源帖:https://www.52pojie.cn/thread-1695141-1-1.html 下载个雷电模拟器,MT管理器,NP管理器 将MT管理器,NP管理器拖到雷电 相关软件地址https://www.aliyundrive.com/s/TJoKMK6du6x 接着在雷电开启root然后重启 具体配置

    2024年02月10日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包