汇编逆向-入门

Qt源码解析 索引

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

问题模拟

运行环境

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

运行效果

输入注册信息不对提示错误。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tV3bdLGO-1669017713175)(D:\Work\Code\luxiang\CSDN\ASM-serial.exe.gif)]

问题分析

步骤一:查壳

PEid工具使用,略过。

步骤二:分析目标程序

方法:逆向

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

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

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

查找常量字符串

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

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

汇编逆向-入门_第1张图片

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

汇编逆向-入门_第2张图片

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

汇编逆向-入门_第3张图片

分析汇编代码逻辑

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

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

汇编逆向-入门_第4张图片

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。

汇编逆向-入门_第5张图片

连接知识汇编介绍

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

JE ;等于则跳转

JB ;无符号小于则跳转

rIV1-1669017713179)]

连接知识汇编介绍

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

JE ;等于则跳转

JB ;无符号小于则跳转

你可能感兴趣的:(assembly,x96dbg)