navicat 给公司发律师函了, 所以不能白嫖了..
后来一直在找替代品, 但均感觉略有不足.
dbeaver : java 开发的, 依赖 jdk , 而且BUG较多,也不流畅
mysqlworkbench : 官方出品, 功能强大. 但是用着不带劲
Sequel Ace : 开源免费, 但是只支持mysql,功能简单
最后试了下 Tableplus , 感觉还不错. 颜值高, 支持的协议多,跨平台.
免费版有很多限制, 所以今天试了简单逆向了下..
0x1
环境:
Tableplus Version 5.3.8 (500) (https://tableplus.com/)
ida64
hopper
0x2
免费版有如下限制, 我们可以从这些关键字入手
[ol]
[/ol]
hopper 搜索 str "Free Trial limited 2" , 定位到这些str的内存地址
__cstring:00000001006BF130 00000020 C Free Trial limited 2 workspaces
__cstring:00000001006C74D0 0000001A C Free Trial limited 2 tabs
__cstring:00000001006CC220 0000001D C Free Trial limited 2 filters
0x3
分析0x2的第一个变量地址, 查看引用.这里有三个引用, 先看第一个.
进入到函数首 , 看到这块有个关键跳转.
在这里下断,然后依次增加tab 页 ,分析得出以下结论
call sub_1002a56b0 ; sub_1002a56b0 这个函数应该是取当前tab页数量,复值给 rax
cmp rax, 0x2 ; 将 rax 与 2 做比较, 这里的 2 就是限制条件
mov qword [rbp+var_38], r13
jl loc_1000c17c1 ; rax
这里要爆破就很简单了,
jl loc_1000c17c1 > jmp loc_1000c17c1.
至于另外俩个关键字也是一样的方式..
0x4
用 ida 修改 jl > jmp .
然后保存 (不用 hopper 修改是因为穷)
保存完之后记者重新加签
target_app=/Applications/TablePlus.app
sudo xattr ${target_app}
# 删除签名
sudo xattr -r -d com.apple.quarantine ${target_app}
sudo xattr -cr ${target_app}
# 重新签名。
sudo codesign -f -s - --deep ${target_app}