Fxxk CrackMe 001(未完成 2016/05/02)

2023-11-23 17:00
文章标签 02 完成 05 crackme 001 2016 fxxk

本文主要是介绍Fxxk CrackMe 001(未完成 2016/05/02),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CrackMe 001/160

首先附上160个CrackMe的链接。
链接: http://pan.baidu.com/s/1c1Ekrba 密码: try4
160CrackMe中的第1个,非常简单,且采用纯暴力破解。
先看看这个CrackMe,
这里写图片描述
这里写图片描述
随便用一个debugger载入,这里笔者用的是x32dbg,OD载入之后的字符串显示不是很完整。
好,首先从字符串入手。先搜索一下它的string。
这里写图片描述
可以看到”Congratz !!”以及”Good job dude =)”是我们关心的字符串。一共有两个,分别对应着该CrackMe的两个模式。Press Enter跳转到代码,可以看到,

0042F4D5 | 75 1A                    | jne acid burn.42F4F1                    |
0042F4D7 | 6A 00                    | push 0                                  |
0042F4D9 | B9 64 F5 42 00           | mov ecx,acid burn.42F564                | 42F564:"Congratz!"
0042F4DE | BA 70 F5 42 00           | mov edx,acid burn.42F570                | 42F570:"God Job dude !! =)"
0042F4E3 | A1 48 0A 43 00           | mov eax,dword ptr ds:[430A48]           |
0042F4E8 | 8B 00                    | mov eax,dword ptr ds:[eax]              |
0042F4EA | E8 81 AC FF FF           | call acid burn.42A170                   |
0042F4EF | EB 18                    | jmp acid burn.42F509                    |
0042F4F1 | 6A 00                    | push 0                                  |
0042F4F3 | B9 84 F5 42 00           | mov ecx,acid burn.42F584                | 42F584:"Failed!"
0042F4F8 | BA 8C F5 42 00           | mov edx,acid burn.42F58C                | 42F58C:"Try Again!!"
0042F4FD | A1 48 0A 43 00           | mov eax,dword ptr ds:[430A48]           |
0042F502 | 8B 00                    | mov eax,dword ptr ds:[eax]              |
0042F504 | E8 67 AC FF FF           | call acid burn.42A170                   |

jne acid burn.42F4F1这句就是是否跳转到提示错误的语句。如果上面的serial校验失败的话,就会跳走。否则就会提示正确。这里我们就先不分析serial的生成了,直接暴力破解,将这个jne语句直接用nop填充了。使得程序不管怎样都会执行到下面的正确的代码,然后返回。将75 1A改成90 90即可。然后patch程序,这样无论输入怎样的serial都是显示正确了。
这里写图片描述
另外一个地方如法炮制即可。
具体的serial生成算法待我有时间继续写好了。

这篇关于Fxxk CrackMe 001(未完成 2016/05/02)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419420

相关文章

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

新160个crackme - 051-Keygenning4newbies

运行分析 需要破解Name和Serial PE分析 C++程序,32位,无壳 静态分析&动态调试 ida找到关键字符串,双击进入函数 静态分析得到以下结论:1、Name长度要大于4,小于502、v5 += Name[i] ^ (i + 1)3、v7 = 最后一个Name[i] ^ (i + 1)4、Serial = (v5<<7) + 6* v7 的16进制

MySQL record 02 part

查看已建数据库的基本信息: show CREATE DATABASE mydb; 注意,是DATABASE 不是 DATABASEs, 命令成功执行后,回显的信息有: CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8mb3 / /!80016 DEFAULT ENCRYPTION=‘N’ / CREATE DATABASE myd

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

滚雪球学MyBatis(02):环境搭建

环境搭建 前言 欢迎回到我们的MyBatis系列教程。在上一期中,我们详细介绍了MyBatis的基本概念、特点以及它与其他ORM框架的对比。通过这些内容,大家应该对MyBatis有了初步的了解。今天,我们将从理论走向实践,开始搭建MyBatis的开发环境。了解并掌握环境搭建是使用MyBatis的第一步,也是至关重要的一步。 环境搭建步骤 在开始之前,我们需要准备一些必要的工具和软件,包括J

SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)

上一章讲了 BAPI的概念,以及如何调用SAP里面的既存BAPI。 SAP学习笔记 - 开发01 - BAPI是什么?通过界面和ABAP代码来调用BAPI-CSDN博客 本章继续讲开发相关的内容,主要就是BTP的实际操作流程,比如账号注册,登录,BTP集成开发环境的搭建这方面。 目录 1,账号注册 2,BTP登录URL 3,如何在BTP上进行开发? 以下是详细内容。 1,账

C++入门(05-2)从命令行执行C++编译器_GCC

文章目录 GCC编译器1. 下载MinGW-w64,安装(不推荐)2. 使用MSYS2安装MinGW-w64(推荐)2.1 安装MSYS22.2 初始化和更新2.3 安装MinGW-w64编译器2.3 在MSYS2 Shell中导航到代码目录2.4 使用 g++ 编译2.5 运行可执行文件 GCC编译器 GCC(GNU Compiler Collection)是一个开源编译器集

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi