汇编逆向-入门

Qt源码解析 索引

汇编逆向— 授权破解示例分析

问题模拟

运行环境

  1. x64dbg
  2. Windows 10
  3. serial.exe

运行效果

输入注册信息不对提示错误。
在这里插入图片描述

问题分析

步骤一:查壳

PEid工具使用,略过。

步骤二:分析目标程序

方法:逆向

此程序是已知代码的情况。为了演示。而实际上,我们分析的软件我们是看不到软件的源代码的。

程序逆向的基本步骤如下:

  1. 查找常量字符串;
  2. 通过常量字符串,分析汇编代码逻辑;
  3. 修改汇编代码;
  4. 验证补丁程序

查找常量字符串

​ 步骤1:【调试 D】-【运行 F9】把程序运行起来,进入主模块

​ 步骤2:运行起来后,程序在入口点暂停。然后在CPU(反汇编)窗口->鼠标右键->搜索->选择模块(一般选择当前模块,前提是得先执行到主模块)->字符串,分别搜索:Incorrect!Try Again.字符串,双击搜索结果,软件会自动挑战到相关的代码段 。

在这里插入图片描述

由于搜索到两处,需要单独分析两处的不同

在这里插入图片描述

步骤3:查找到的两处信息分别设置断点,【调试 D】-【运行 F9】把程序运行起来,程序会进入到断点。

在这里插入图片描述

分析汇编代码逻辑

详细查看反汇编代码。如果看不懂不要着急。补充基础知识。

输入666,777点击【确定】。根据实际数据查看程序,分别判断输入用户明与密码的逻辑

在这里插入图片描述

cmp eax,ebx		//	比较结果
je serial.40124C	//相等的话,调用成功,也就是call serial.40134D指令
call serial.401362	//成功调用
jmp serial.4011E6
call serial.40134D	//错误调用
jmp serial.4011E6

修改汇编代码

选中要改动的一行,【右键】–【汇编】,或者快捷方式,将[je serial.40124C]改成[jmp serial.40124C],点击【确定】。

忽略弹出的下一条指令,关闭窗口。

修改完成后可以继续运行,验证修改结果。确认无误后,再导出补丁文件。

验证补丁程序

可以直接运行程序。输入999提示ERROR.。输入任何其他字符提示OK。

在这里插入图片描述

连接知识汇编介绍

JAE ;无符号大于等于则跳转

JE ;等于则跳转

JB ;无符号小于则跳转

rIV1-1669017713179)]

连接知识汇编介绍

JAE ;无符号大于等于则跳转

JE ;等于则跳转

JB ;无符号小于则跳转

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道格拉斯范朋克

播种花生牛奶自留田

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值