Sublime Text4 crack时替换的汇编指令

在这里插入图片描述

Sublime Text4 crack时替换的汇编指令

首先请支持正版,这里研究破解的步骤,仅做汇编代码学习。

破解步骤很简单: 打开二进制文件, 搜索 80 78 05 00 0F 94 C1, 替换为 C6 40 05 01 48 85 C9.

(源: https://gist.github.com/skoqaq/3f3e8f28e23c881143cef9cf49d821ff?permalink_comment_id=4366207)

替换的神奇数字,含义是怎样的? 查询 https://defuse.ca/online-x86-assembler.htm#disassembly2 :

80 78 05 00 0F 94 C1                                            // char data[10]
0:  80 78 05 00             cmp    BYTE PTR [rax+0x5],0x0       // if (data[5] == 0)
4:  0f 94 c1                sete   cl                           //    cl = 1
                                                                // else cl=0
C6 40 05 01 48 85 C9                                        // char data[10]
0:  c6 40 05 01             mov    BYTE PTR [rax+0x5],0x1   // data[5] = 1
4:  48 85 c9                test   rcx,rcx

sete cl: sete 是 Set Byte On Condition 的缩写。

如果零标志被设置(即上一条比较或算术指令的结果为零),那么 sete 指令会将目标操作数设置为 1,否则设置为 0。

或者这样理解:根据ZF标志位的值,设置一个变量的值为1或0. 如果ZF为1,则CL为1,否则CL为0.

在x86_64架构的指令集中, CL是一个8位的寄存器,通常用于计数、控制循环和字符串的操作等。其中在字符串操作中, CL 可以用来存储字符串的长度。

char data[10]: 这里是随便写的,不确定。

使用 edb 检查汇编代码呢?

sudo apt-get install libcapstone-dev
git clone https://github.com/eteran/edb-debugger
cd edb-debugger
git submodule update --init --recursive
cmake -S . -B build && cmake --build build
cd build
./edb /opt/sublime_text/sublime_text_copy2

搜索 80 78 05 00 0F 94 C1, 发现了地址是 0x00564f:81e70f39, 调转到地址查看对应汇编代码:

...
mov r14, rax
mov rax, [r15+0x498]
xor ecx, ecx
cmp byte [rax+5], 0     //
sete cl                 //
lea edx, [rcx+rcx]
cmp byte [rax+4], 0
...

可以看到, 在 cmp byte [rax+5], 0 这行之前, 执行了 xor ecx, ecx, 也就是说 ecx 寄存器现在为0.

因此, 破解后的做法, 是保持了 ecx 寄存器为0, 因而 cl 也是0; 进一步的, test rcx, rcx 使得 ZF 为1.
在这里插入图片描述

由于难度问题,暂时搁置分析:

  • sublime_text 可执行程序,并没有符号信息, gdb 查看不到符号(函数名字),没法用前面几篇中使用 gdb 练习到的技能继续分析
  • 觉得 IDA Pro 或 Ghidra 过于庞大, 即使是 edb, 也不太会用

贴两篇前人的分析文章,有缘人可以参考:

  • [Windows]Sublime Text 4143注册分析
  • Sublime Text 破解

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

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

相关文章

CH341 SPI方式烧录BK7231U

CH341是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 BK7231U Wi-Fi SOC芯片,内嵌处理器。1. 符合802.11b/g/n 1x1协议 2. 17dBm 输出功率3. 支持20/40 MHz带宽和STBC 4. 支持Wi-Fi STA、AP、…

美颜技术详解:美颜SDK与直播平台集成

如今,美颜技术成为了吸引用户的一项重要功能。本篇文章,小编将深入讲解美颜技术,重点关注美颜SDK的原理以及如何将其无缝集成到直播平台中,为用户提供更加优质的视觉体验。 一、美颜技术概述 美颜技术的应用范围广泛&#xff0c…

星河璀璨:飞桨星河文心SDK与Gurdance珠联璧合让大模型更像人!

星河璀璨:飞桨星河文心SDK与Gurdance珠联璧合让大模型更像人! 本项目效果惊艳,可以在AIStudio星河社区一键运行 只需要在cpu基础版下运行,妈妈再也不怕我的算力不够了! 1、引言 2023年8月22日,百度董事…

阿里云c8i服务器CPU性能、架构及费用测评

阿里云第八代云服务器ECS计算型c8i实例,CPU采用Intel Xeon Emerald Rapids或者Intel Xeon Sapphire Rapids,主频不低于2.7 GHz,全核睿频3.2,阿里云百科aliyunbaike.com分享阿里云c8i服务器CPU处理器型号、存储、网络、安全、使用场…

uniCloud 云数据库(1)

目录 1:云数据库入门,基本概念了解 1.1 云数据库是关系型还是Nosql? 1.2 uniCloud 云数据库和关系型数据库的对比 1.3 官方文档传送门 2: 基本操作表 创建 在uniCloud web控制台 进行创建 数据表的3个组成部分 通过传统方式操作数据库 获取集合的引用 集…

Microsoft Excel 直方图

Microsoft Excel 直方图 1. 数据示例2. 打开 EXCEL3. settings4. 单击直方图柱,右键“添加数据标签”References 1. 数据示例 2. 打开 EXCEL 数据 -> 数据分析 -> 直方图 3. settings 输入区域样本值、接受区域分类间距,输出选项选择“新工作表组…

【LV12 DAY17-18 中断处理】

GPX1_1是外部中断9 EINT9 查询可知其中断ID是57 所以需要进行人为修正lr的地址 sub lr,lr,#4 //iqr异常处理程序 irq_handler: //IRQ异常后LR保存的地址是被IRQ打断指令的下一条再下一条指令的地址,所以我们需要人为进行修正一下sub LR,L…

【DC系列教程2--Timing and Area Constrains】

DC系列教程2--Timing and Area Constrains Lab Flow:依赖输入Design SpecificationLab Demo Goal: determin the unit of time in the target library; //设置时间精度Create a Design Compiler timing and area constrains file based on a provided schematic and specifacat…

动态内存管理4大函数的进阶

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

std::atomic<int>的原理

⚠️WARNING⚠️ 注意: 试验平台是CentOS7,x86_64,Intel Xeon CPU 不同平台原理大不相同! [mzhaiinclude]$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) lis…

66.网游逆向分析与插件开发-角色数据的获取-角色类的数据分析与C++还原

内容来源于:易道云信息技术研究院VIP课 上一个内容:65.网游逆向分析与插件开发-角色数据的获取-项目需求与需求拆解-CSDN博客 ReClass.NET工具下载,它下方链接里的 逆向工具.zip 里的reclass目录下:注意它分x64、x32版本&#x…

HarmonyOS-LocalStorage:页面级UI状态存储

管理应用拥有的状态概述 上一个章节中介绍的装饰器仅能在页面内,即一个组件树上共享状态变量。如果开发者要实现应用级的,或者多个页面的状态数据共享,就需要用到应用级别的状态管理的概念。ArkTS根据不同特性,提供了多种应用状态…

EasyExcel简单实例

EasyExcel简单实例 准备工作场景一:读取 Student 表需求1:简单读取需求2:读取到异常信息时不中断需求3:读取所有的sheet工作表需求4:读取指定的sheet工作表需求5:从指定的行开始读取 场景二:写入…

YOLOv8 Ultralytics:使用Ultralytics框架进行MobileSAM图像分割

YOLOv8 Ultralytics:使用Ultralytics框架进行MobileSAM图像分割 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行MobileSAM图像分割参考文献 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩…

【云原生】springboot 整合 OpenTelemetry

目录 一、前言 二、应用可观测性概述 2.1 什么是可观测性 2.2 可观测性三大指标 2.2.1 指标(Metrics) 2.2.2 日志(log) 2.2.3 追踪(Traces) 三、OpenTelemetry 介绍 3.1 什么是OpenTelemetry 3.2 OpenTelemetry架构和组件…

SMART PLC绝对值定位往复运动控制(脉冲绝对定位+状态机编程)

三菱FX3GA系列绝对定位指令DDRVA实现往复运动控制详细内容介绍请参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/135570157https://rxxw-control.blog.csdn.net/article/details/135570157这篇博客我们介绍SMART PLC里如何开启绝对值定位指…

隧道自动化监测系统的主要产品和监测内容

一、背景 随着交通行业的不断发展,隧道作为交通基础设施的重要组成部分,其安全和稳定性对于保障人们的生命财产安全具有重要意义。隧道自动化监测系统作为一种先进的安全监测手段,能够实时监测隧道内部的各项参数,为隧道的安全运…

CentOS 7.6的HTTP隧道代理如何支持移动设备和远程用户

在CentOS 7.6上配置HTTP隧道代理以支持移动设备和远程用户,需要考虑到移动网络的特点以及远程用户的需求。以下是一些关键步骤和策略,可以帮助你实现这一目标。 1. 优化移动设备体验 压缩数据:HTTP隧道代理可以用于压缩进出移动网络的数据&…

Fluent 动网格应用:2.5D 网格重构

1 概述 2.5D 网格重构是一种快速网格重构方法,主要应用于涡旋压缩机等存在复杂平面运动且无法简化为二维计算的问题。 涡旋压缩机工作原理(视频源:维基百科) 适用于 2.5D 动网格的问题特点: 计算域几何形状为柱体类形…

(菜鸟自学)搭建虚拟渗透实验室——安装Windows 7 靶机

安装Windows 7 靶机 新建一台虚拟机,并选择Windows 7系统 虚拟机基本配置如下 为虚拟机挂载Windows7的镜像 点击开启虚拟机,将进入安装程序,按如下步骤进行操作: 点击“下一步”》勾选“我接受许可条款”,点击“下…
最新文章