160个CrackMe之001

吾爱中的逆向练习题

运行程序

 

 有两个方式 一个是账号登入

 一个是序列号输入

账号输入

方法一 爆破

我们先进行账号输入

这个是最简单的逆向 所以我们可以使用 字符串查找看看

先试用ollydbg打开

右键 ->查找 ->所有参考文本字符串

 这里我们能发现有两个报错

我们还不知道是哪一个 我们随便进入一个看看 我们先进入第一个

 打上断点 重新执行程序

触发断点 我们开始单步调试看看

 

 这里直接越过了第一个报错 说明这个不是第一个报错的位置

 发现成功语句 并且带有跳转

 我们可以通过 OllyDbg看到 这个跳转是跳转到 下面错误的位置 所以这个就是核心跳转了

我们修改为nop

 保存为新的文件

 这里就成功了

方法二 算法

在第一次的调试后我发现一些问题

 这个报错是在 字符串输入很短的时候进行报错

所以我们可以直接修改为 jmp 

jmp     short 0042FA79

  这个时候就是无条件跳转 不会发生报错

我们可以继续分析程序

在最后输出 错误和正确的时候 出现了这个

感觉和序列号一样 我们看看是不是这个

查看eax的字符串

复制下来

直接打开程序

 

 发现就是序列号

所以我们开始分析

我们开始逆向看看 先看看三个call 函数

经过测试 发现不是里面的内容 里面是一大堆跳转

所以我们思考是不是之前就已经在程序中计算出来序列号了

我们再重新执行程序 然后输入一个特定的值 我输入 2233

 发现在这里存入了 2233

这里存入了 29h

注意这里的代码

 imul 得出的结果存入 eax

所以下面

 eax的内容变为了 0802

在内存中是 0208存入的

 

 这个代码又把两个 02 08 00 00相加 变为了 0410 00 00

 然后我们去看看我们后面的序列号

 发现就是 4100

所以这里就是计算序列号

1 先取 2233 的 第一个字节 2
然后和 0x29相乘


为 02 08 

然后一倍  04 10 

我们就可以编写程序

cName = input("Input Name:\n")
iName = ord(cName[0])  # 获取字符串的第一个字符并将其转换为整数

if iName > 0x21:
    iName *= 0x29  # 乘法
    iName *= 2  # 自增一倍
    print("Serial: CW-{0:04d}-CRACKED".format(iName))
else:
    print("input error!")

取得序列号

通过serial来注册

算法

这个有了之前的方法很简单

我们先看看 程序给的字符串是什么

 

 我们去找try again这个字符串

 

 有3 个 我们都设断点 看看停在哪里

开始执行 触发断点

 触发了 我们开始看看这个程序的代码

 出现了ascii 我们开始设置最上面为eip 然后单步执行程序

 发现这个是在比对

因为我没有输入 所以会显示 让我输入值

我们可以看看是不是这个 我们重新打开程序

 

 发现成功了

所以这个就是 serial 固定不变

爆破

我们看懂代码后

 这个跳转就和之前一样 我们改为 nop 就实现了爆破

保存后 我们看看功能怎么样

 

 注册是OK的

 

 serial也是ok的

我们看看用合法的方式

 

 

 看看serial

 

这个时候 程序就成功了

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

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

相关文章

通过python封装1688图片搜索商品数据接口,拍立淘API接口

1688图片搜索API封装接口是一个可以帮助用户快速使用1688图片搜索API的接口封装库。该接口封装库可以帮助用户快速引入1688图片搜索API,并提供各种参数配置和封装的API调用方法,以方便用户快速实现自己的图片搜索需求。 该接口封装库将1688图片搜索API的…

九耶丨阁瑞钛伦特-springmvc(三)

SpringMVC作为一种流行的Java Web框架,是基于Spring之上的。它提供了强大的MVC(Model-View-Controller)架构,能够快速地实现Java Web开发,高效地与数据交互。如何使用SpringMVC成为开发人员的首要问题。要了解SpringMV…

设计模式之~外观模式

定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 结构图: 区分中介模式: 门面模式对外提供一个接口 中介模式对内提供一个接口 优点: 松耦…

Linux进程概念引入

文章目录 冯诺依曼体系操作系统概念设计目的定位系统调用和库函数的概念 进程概念描述进程PCBtask_struct内容分类 组织进程查看进程通过系统调用获取进程标识符通过系统调用创建进程 冯诺依曼体系 目前我们的计算机基本都是遵守冯诺依曼体系的,在冯诺依曼体系中&am…

C++ 内存分区模型

C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放 , 存放函数的参数值 , 局部变量等 堆区&…

第11届蓝桥杯Scratch国赛真题集锦

编程题 第 1题 问答题 3D打印小猫 题目说明 背景信息:3D打印技术,它与普通打印工作原理基本相同,打印机内装有液体或粉未等“打印材料”,与电脑连接后,通过电脑控制把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。 编程实现:通过滑杆控制小猫造型变化,按下…

YUM在线升级功能

文章目录 YUM在线升级功能利用YUM进行查询、安装、升级与删除功能查询功能使用案例 安装/升级功能删除功能 YUM的配置文件修改软件源产生的问题与解决之道使用案例 YUM的软件群组功能使用案例 全系统自动升级 管理的抉择:RPM还是Tarball基础服务案例:以A…

学生成绩管理系统

基于springboot vue实现的学生成绩管理系统 主要模块: 1)学生模块:我的成绩、成绩统计、申述管理、修改密码 2)教师模块:任务管理、对学生班级任务安排、班级学生的成绩查看、申述管理 3)管理员模块&…

应用运维的三个项目

应用运维 目录概述需求: 设计思路实现思路分析1.开发和运维2.比重3.历史项目4.工作内容5.历程 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,…

南山城市更新--向南村(一期,二期)项目详情

向南村(一期)城市更新单元项目简介 项目于2010年被列入《深圳城市更新单元规划制定计划第一批计划》中,申报主体为向南实业股份有限公司,后与恒大合作开发。 项目位于南山区桂庙路南侧,毗邻前海、衔接后海&am…

javaWeb ssh小提琴管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh小提琴管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,…

TypeScript实现贪吃蛇游戏

TS实现贪吃蛇游戏 文章目录 TS实现贪吃蛇游戏[toc]1.项目效果2.项目梳理3.项目准备4.主体页面结构5.CSS样式6.TS逻辑6.1 食物逻辑6.2 蛇逻辑6.3 记分板逻辑6.4 游戏控制器逻辑6.5 程序入口ts 1.项目效果 项目体验 2.项目梳理 这个小游戏主要包括积分面板,食物&…

【Spring】— 映射文件

目录 映射文件select元素insert元素update元素和delete元素sql元素resultMap元素 映射文件 映射文件是MyBatis框架中十分重要的文件。在映射文件中&#xff0c;<mapper>元素是映射文件的根元素&#xff0c;其他元素都是它的子元素。映射文件中的主要元素如下所示。 <…

【owt】WebrtcNode, subscribe-sdp offer 流程(1)

sdp offer 流程 1. AmqpClient - New message received sdp offer 的消息 2023-04-26T21:54:19.790 - DEBUG: AmqpClient - RpcServer New message received {method: onTransportSignaling,args: [b149e44bb10d4e91bd162a8c6806ae7b,{sdp: v0\r\n o- 7177131362423164715 …

生活-考驾照2

昨日已通过科目一&#xff0c;接下来&#xff0c;向着科目二出发&#xff01;&#xff01;&#xff01; 考试注意事项 就考前一周死命刷题&#xff0c;至少一天有三次93以上的记录&#xff0c;我也就最后一天达到90&#xff0c;之前一直马路杀手刷题&#xff0c;我就在网页版…

WRF模式应用:天气预报、模拟分析观测气温、降水、风场、水汽和湿度、土地利用变化、土壤及近地层能量水分通量、土壤、水体、植被等相关气象变量

查看原文>>>高精度气象模拟软件WRF(Weather Research Forecasting)技术及案例应用 气候是多个领域&#xff08;生态、水资源、风资源及碳中和等问题&#xff09;的主要驱动因素&#xff0c;合理认知气候变化有利于解释生态环境变化机理及过程&#xff0c;而了解现在、…

Alibaba Arthas学习与使用

Alibaba Arthas学习与使用 目录 下载安装卸载退出快捷键重点部分: 命令 dashboardthreadjvmsyspropsysenvvmoptiongetstaticognlscsmjadmcredefinedumpclassloadermonitorwatchtracestackttoptionsprofiler 下载安装 # 下载 curl -O https://alibaba.github.io/arthas/art…

如何在多个端口上运行 SSH 服务器?

SSH&#xff08;Secure Shell&#xff09;是一种用于安全远程访问和管理服务器的协议。默认情况下&#xff0c;SSH服务器在Linux系统上使用22号端口进行通信。但是&#xff0c;有时我们可能需要在多个端口上运行SSH服务器&#xff0c;以满足特定的需求或增强服务器的安全性。 本…

SQL审核工具Yearning搭建及使用

一、背景 实际的业务场景中&#xff0c;我们难免会直接对生产库的数据进行修改。很多朋友都是发sql给运维&#xff0c;然后运维执行。过程不可控&#xff0c;出错几率很大。 而且没有审核&#xff0c;不知道提交的具体是什么sql&#xff0c;极有可能是删库跑路的sql&#xff0…

实验二十一、积分运算电路的输出波形分析

一、题目 利用 Multisim 分析图1所示两个积分运算电路的输出波形&#xff0c;输入电压为 200 Hz、幅值为 1 V 的方波信号。 图 1 图1\,\, 图1 二、仿真电路 在 Multism 中搭建图1所示的两个电路&#xff0c;如图2所示。为了防止电路中的直流增益过大&#xff0c;故在电容上…