吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22648|回复: 37
收起左侧

[原创] 新手Sublime Text 3143 x64 破解(一) 暴力破解法

[复制链接]
var 发表于 2017-9-29 10:25
本帖最后由 var 于 2017-9-29 13:20 编辑

软件:Sublime Text 3143 x64 Windows
工具:x64dbg

新手学习破解,大神轻拍



此篇就是介绍如何移除 未注册,纯暴力移除,第二篇采用修改代码,让软件自我注册
第二篇地址:
https://www.52pojie.cn/thread-648211-1-1.html


如果不想破解,用下面的注册码也可以正常注册
[Asm] 纯文本查看 复制代码
—– BEGIN LICENSE —–
TwitterInc
200 User License
EA7E-890007
1D77F72E 390CDD93 4DCBA022 FAF60790
61AA12C0 A37081C5 D0316412 4584D136
94D7F7D4 95BC8C1C 527DA828 560BB037
D1EDDD8C AE7B379F 50C9D69D B35179EF
2FE898C4 8E4277A8 555CE714 E1FB0E43
D5D52613 C3D12E98 BC49967F 7652EED2
9D2D2E61 67610860 6D338B72 5CF95C69
E36B85CC 84991F19 7575D828 470A92AB
—— END LICENSE ——


Sublime Text 是一个代码编辑工具,不注册也不影响使用。

1. 只是在标题①、About页面②显示(UNREGISTER)

Image 2.png

2. 在保存多次之后弹出注册框

Image 3.png

3. Help 菜单显示输入注册码

Image 4.png

破解方法:
一、暴力删除About页面的UNREGISTER
我们可以看到 About 页面上面有UNREGISTER的字样,那我们先在String里面搜这个字符串

1. 首先用x64dbg载入Sublime Text 按 Alt+F9 让程序运行到用户空间

注意下图①的位置 需要是sublime.exe 就表示到用户空间了,我这里修改了程序名字,道理都一样。
如果①还是ntdll.dll之类的,那就要继续按,让断点到用户空间。
Image 5.png
然后在CPU区点击右键 - 搜索 - 当前模块 - 字符串

2. 这样就进入了字符串搜索页面,也就是引用页面①

等加载完毕,在②搜索输入 Unregister
Image 7.png
可以看到该字符串③出来了,选择之后 按 F2 设置断点

这时候一路F9 让程序运行起来

3. 现在在主菜单点击 Help - About 打开关于页面,发现断住了,切换到CPU区

这是在读取这个字符串的时候断下,Ctrl+A分析整个程序的跳转逻辑
可以看到选中的那行 有一个跳转逻辑,
Image 8.png
往上翻看看这个跳转是什么情况下引发的。

Image 10.png

一直翻到了①的位置,是跳转分支,居然在右边②发现了 Register To,那说明这个分支就是判断是否注册的依据。
图③就是判断是否注册的代码
[Asm] 纯文本查看 复制代码
cmp byte ptr [r13], dil
je 0x7ff65d796f60

r13是一个寄存器,只读取一个字节(byte ptr),对比dil  差不多就是等同于  if (r13) 的意思,只有有值就是true
既然是暴力破解,那么将 je 改成 jne 看看 效果
双击改行改为
[Asm] 纯文本查看 复制代码
jne 0x7ff65d796f60


4. 一路F9 重新打开 About 页面
Image 11.png

破解成功

二、移除标题栏的UNREGISTER

标题栏的 (UNREGISTER)字符串在切换文件,或者打开新页面的时候都会触发

1. 根据上面的老方法,去引用里面查找 UNREGISTER

但是根本没有这个字符串,为什么呢,因为Sublime Text 采用一个简单的算法来隐藏UNREGISTER,真正的字符串是@[GPR\\FAPGPQ,在显示的时候转换成UNREGISTER
但是刚刚破解怎么可能知道这个字符串,我们采用一个新的手段,
大家要知道WindowsAPI里面设置标题,会触发Windows的SetWindowText的方法,这个方法位于user32.dll

2. 设置SetWindowText的断点

切换到 符号①页面


在②中输入 user32,③中输入setwindowtext
得到了两个API,我们给两个都下断点

3. 触发setwindowtext的断点

但是Windows下对文本框的输入都会触发这个,但是这不是我们的目的。
我们在Sublime Text 编辑区头部双击 新建一个Tab,切换编辑区Tab的时候触发的setwindowtext才是我们想要的,

箭头这里双击可以新建Tab

Image 13.png

注意,一定是切换Tab的时候,不然会触发一些无意义的setwindowtext

在双击的那一刻,就已经断住了,因为切换Tab时要去设置窗口的标题

Image 14.png

可以看到 这个时候 已经将 (UNREGISTER) 组合起来了,这里的代码已经到 setWindowText 了,没研究的价值,我们通过调用堆栈查找
Image 15.png

按照惯例,我们需要一个一个检查回调结果,经过无数次调试,这里可以告诉大家,第二行就是关键代码。为什么?看下面

4. 查看调用堆栈,查看逻辑

上图 箭头的地方双击,就切换到了 调用堆栈,x64dbg 有一个问题, 这里到达的总是在真实调用的下一行,其实上一行的call才是调用的堆栈,也就是图①行。

Image 16.png

图①就是调取setWindowText的call,图②出现了上面说的那段字符串,

5. 修改跳转

大家看到右边有一些判断分支的注释,在这里,需要强调的是,这都是经过数次执行才知道的结果,如果直接逆推是很复杂的,关键是需要从函数头开始执行,看看分支都是怎么进行的,当然也可以 F5 反编译成C之后 查看逻辑,我是两者结合的。
经过数次的实验,花费了大量的时间去算分支,最后发现程序是通过位运算,来拼接对应的字符串,

未注册 r14b的结果是 0xA 也就是 1010
已注册 r14b的结果是 0x8 也就是 1000
已注册但是过期 r14b是 0xc 也就是 1100

第二位的 1 就是 (UNREGISTER) 的标志位 也就是 1010 & 0010 为 true 时候

我们看上图的第一个黑框
[Asm] 纯文本查看 复制代码
test r14b, 2
je 0x7ff65d914b8f

这行是判断 是否 给标题加上  (UNREGISTER)
那 直接修改je 为 jne 试试
[Asm] 纯文本查看 复制代码
jne 0x7ff65d914b8f

看图:
Image 17.png

切换Tab 之后,已经没有了(UNREGISTER),
经过测试,修改这段之后,在启动的时候也不会出现 (UNREGISTER),但是不要傻乎乎的直接在x64dbg里面重启,要打文件补丁

那么这一步也结束了,剩下的就是保存多次之后 弹出注册框的问题

三、修改保存几次之后弹出购买提示框

3143这个版本,貌似只会一次启动,多次保存也只会弹窗一次,没有深入测试,所以我每次都是重启软件找的断点,比较头疼,不过比较好找

1.  老方法,依靠字符串找断点

Image 18.png

注意第一行才是,第二是貌似是说要升级,和弹窗不相干。

F2 下断

2.  触发弹窗

那就需要新建一个文件,然后不停的Ctrl+S来触发了,上文说过,这个版本貌似只会弹一次,如果跟丢了,就麻烦Ctrl+F2重启重新跟
其次,之前的所有断点最好取消,因为你打开保存窗口的时候、打字的时候会触发,为了不停F9的麻烦,可以先取消。
另外保存untitled的时候会暂停多次,需要多次F9 ,因为会触发一些系统的中断。

Image 19.png

在图①已经中断了,

下面有两个关键call 图② ③,
这里破解比较简单,直接宣布结果,第一个call是调用 注册窗口的,第二个call是打开上面的buy的网址(多跑几次就知道了,不复杂)
为保持栈平衡,将这两个call 都 nop 掉即可,注意
Image 20.png

--------------------------------------------------------------------------------------------------------------
这样这三个的破解就结束了。
由于笔者技术有限,不知道如何监听 主菜单 Help - Enter License,但是因为这不是太碍眼,所以就没继续更了,

由于有注册码,就不提供破解文件下载了,有兴趣的可以使用010 Editor编辑器修改,按照下文的文件修改偏移方案

x64dbg的内存修改补丁是
注意是内存,不是文件的偏移
[Asm] 纯文本查看 复制代码
0000000000077513:E8->90
0000000000077514:1C->90
0000000000077515:85->90
0000000000077516:1C->90
0000000000077517:00->90
0000000000077523:E8->90
0000000000077524:00->90
0000000000077525:03->90
0000000000077526:1C->90
0000000000077527:00->90
00000000000B6CF6:84->85
0000000000234B49:74->75


文件修改偏移是:
[Asm] 纯文本查看 复制代码
76913: E8->90
76914: 1C->90
76915: 85->90
76916: 1C->90
76917: 00->90
76923: E8->90
76924: 00->90
76925: 03->90
76926: 1C->90
76927: 00->90
B60F6: 84->85
233F49: 74->75



在下篇中,会替换掉 Enter License,并会让程序自我完成注册,在程序里面里面写入注册指令,让程序在开启的时候就会自动注册。


免费评分

参与人数 16威望 +1 吾爱币 +24 热心值 +15 收起 理由
sofreebaby + 1 + 1 谢谢@Thanks!
98度c + 1 + 1 我很赞同!
艾爱姆Joker + 1 + 1 谢谢@Thanks!
shy52pj + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
uatlaosiji + 1 + 1 谢谢@Thanks!
starh + 1 + 1 谢谢@Thanks!
leonrwy + 1 + 1 谢谢@Thanks!
za最爱高清 + 1 + 1 我很赞同!
Sound + 1 + 8 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
KillerBee + 1 + 1 学习了,看下一篇
Alog + 1 + 1 热心回复!
liuxinghj + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
WYWZ + 1 + 1 支持
朱朱你堕落了 + 1 期待下一遍楼主的大作!
冥界3大法王 + 3 编的不错,鼓励下吧。
hxz303 + 1 + 1 期待视频教程!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| var 发表于 2017-11-17 11:23
uatlaosiji 发表于 2017-11-12 00:09
楼主,第二节,窗口Unregister那段中,在SetWindowTextW哪里下断点。逆推到堆栈,然后RBP-51怎么在右边显 ...

我觉得这不是关键吧,你可能有地方取消了配置,或者按 Ctrl+A之后分析

我那截图是重新执行了本函数结果,也就是重新执行到你的RIP断点,你多运行几次应该是可以显示的
uatlaosiji 发表于 2017-11-12 00:09
本帖最后由 uatlaosiji 于 2017-11-12 16:16 编辑

1

1

楼主,第二节,窗口Unregister那段中,在SetWindowTextW哪里下断点。逆推到堆栈,然后RBP-51怎么在右边显示和你的一样?只能在下边的rbp-51里得到结果?我的有问题有点蠢了。(●'◡'●)
benben1849 发表于 2017-9-29 10:30
广州李寻欢 发表于 2017-9-29 10:35
学习了,感谢分享
冥界3大法王 发表于 2017-9-29 10:36
只能打1分,这就完了?
羽生 发表于 2017-9-29 11:07
学习学习,期待后续
heihuwudi 发表于 2017-9-29 11:14
破解不是关键哈,汉化,中文等等一些插件的封装有了会更好
微笑男孩 发表于 2017-9-29 11:16
学习了。。。。。。。。。。。。
jht338339 发表于 2017-9-29 11:42
刚刚需要,收藏了。
pzhzshun 发表于 2017-9-29 11:51
感谢分享,收藏学习!
honghan 发表于 2017-9-29 12:07
cmp byte ptr [r13], dil
je 0x7ff65d796f60

r13的地址直接写入1就ok了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 17:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表