• 汇编逆向-入门


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改汇编代码

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

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

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

    验证补丁程序

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

    在这里插入图片描述

    连接知识汇编介绍

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

    JE ;等于则跳转

    JB ;无符号小于则跳转

    rIV1-1669017713179)]

    连接知识汇编介绍

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

    JE ;等于则跳转

    JB ;无符号小于则跳转

  • 相关阅读:
    Golang 包
    pybullet 安装失败缺失 Microsoft Visual C++ 14.0 解决方案
    Grad-CAM
    Webrtc官方Demo公网服务器搭建
    jzoj1212 重建道路
    shell选择结构(if)
    C#中密封类和密封方法
    Java中String转换为double类型
    1. 工业大数据的内涵
    轻量级CI/CD发布部署环境搭建及使用_01_基本介绍
  • 原文地址:https://blog.csdn.net/xinqingwuji/article/details/127966809