本文记录第一次使用x64dbg破解Sublime Text 4,具体流程是按照吾爱破解的文章[1]进行。

由于是参考文章的复现,因此,本文记录简单一些,如果希望了解具体过程,可以参考原文。

找到重要标志文本

安装Sublime Text 4,或者下载解压便携版程序,到已经路径下。

选中应用程序sublime_text.exe,右键,点击“用x64dbg调试”。

点击菜单栏的运行,使程序运行。

在关于中,可以看到字符串“Unregistered”,以此作为标志文本。

image-1.png

找到关键地址

在反汇编区域中,右键,搜索字符串“Unregistered”。

image-2.png

image-3.png

选中,右键,点击“在反汇编中转到”。

image-4.png

可以在上文,找到关键字符串“Unregistered”,以及在上面部分位置可以看到字符串“Registered to”,根据之前学习的汇编代码可知,需要改变此前的跳转,而本文可以看到,关键跳转为

1
2
cmp byte ptr ds:[rsi+5],0
je sublime_text.7FF6D7D558D1

以上汇编的代码意为,比较寄存器中rsi的第六位与0是否相等,若相等则跳转,反之则不跳转。

若只是想修改关于处的文本,可以选择修改跳转语句,使之反向即可。

参考的原文,在该处提前修改rsi寄存器中的值。

设置断点,确定寄存器中值的地址

cmp byte ptr ds:[rsi+5],0,处设置断点。

image-5.png

再点击关于,可以使程序运行到该断点处停下,可以在右侧的FPU看到RSI寄存器的地址。

image-6.png

右键,点击“在内存窗口中传到”,此处,应该提前在call一行设置断点,然后修改寄存器中的值,但为了记录方便,进行下一步操作。

在内存窗口中,右键设置断点,在不同版本中所需的断点设置不同,在原文中,只需要设置1个字节,但本人所涉及4152,需要设置8个字节。

image-7.png

运行程序,使用不同页面切换,会检查该符号位的方式,通过修改内存,强行赋值的方法,破解该程序。将之前的反汇编区域中的断点删除,运行之后,在以下地址暂停。

image-8.png

首先是检查更新,由于4152是当前最新版本,因此跳过。

image-9.png

在该位置,修改反汇编代码,为以下内容:

1
2
mov byte ptr ds:[rax+5],0
text rcx,rcx

即可,得到注册之后的Sublime Text 4。右键,补丁,即可。

image-10.png

参考

[1] https://www.52pojie.cn/thread-1468154-1-1.html