MacOS 高颜值的 数据库客户端工具 Tableplus 简单逆向分析

news/2024/12/4 21:04:03/

0x0

navicat 给公司发律师函了, 所以不能白嫖了..
后来一直在找替代品, 但均感觉略有不足.
dbeaver : java 开发的, 依赖 jdk , 而且BUG较多,也不流畅
mysqlworkbench : 官方出品, 功能强大. 但是用着不带劲
Sequel Ace : 开源免费, 但是只支持mysql,功能简单

最后试了下 Tableplus , 感觉还不错. 颜值高, 支持的协议多,跨平台.
免费版有很多限制, 所以今天试了简单逆向了下..

0x1

环境:
Tableplus Version 5.3.8 (500) (TablePlus | Modern, Native Tool for Database Management)
ida64
hopper

0x2

免费版有如下限制, 我们可以从这些关键字入手

  1. 只能打开俩个查询Tab页
  2. 只能打开俩个窗口
  3. 只能添加俩个where条件

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<2 是跳转成立, 否则会执行弹框

这里要爆破就很简单了,

 复制代码 隐藏代码
jl         loc_1000c17c1 > jmp         loc_1000c17c1.

至于另外俩个关键字也是一样的方式..

 复制代码 隐藏代码
## -----------
__cstring:00000001006BF130      00000020        C       Free Trial limited 2 workspaces__text:00000001000C16EB cmp     rax, 2
__text:00000001000C16EF mov     [rbp+var_38], r13
__text:00000001000C16F3 jl      loc_1000C17C1 , jl > jmp## -----------
__cstring:00000001006C74D0      0000001A        C       Free Trial limited 2 tabs__text:00000001001F90C2 cmp     rbx, 2
__text:00000001001F90C6 mov     r13, r15
__text:00000001001F90C9 jl      loc_1001F9184 , jl > jmp## -----------
__cstring:00000001006CC220      0000001D        C       Free Trial limited 2 filters__text:00000001002EA3E0 cmp     r14, 2
__text:00000001002EA3E4 mov     [rbp+var_58], r13
__text:00000001002EA3E8 jl      loc_1002EA4AE , jl > jmp

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}

http://www.ppmy.cn/news/399289.html

相关文章

某互联网银行绿色金融背后的“安全秘诀”

​随着银保监会出台《银行业保险业绿色金融指引》、人民银行牵头制定《G20转型金融框架》的发布&#xff0c;金融行业正在持续加大对绿色金融支持力度。某互联网银行为了响应号召&#xff0c;采用数字化无纸化办公&#xff0c;线上零接触服务减少大量碳排放&#xff0c;成为国内…

ThinkPad S5笔记本设置u盘启动方法

去年十一月份买了一个ThinkPad S5&#xff0c;装过了一次系统&#xff0c;现在再想设置一下u盘启动&#xff0c;但是没有成功&#xff0c;刚刚弄成功记录一下。 这个型号的电脑一般按F12就可以进入页面进行设置启动项&#xff0c;但是我这次选择u盘启动没有反应&#xff0c;原…

联想 android 5.1 root权限,联想S5 root教程_联想S5卡刷root包来获取root权限的方法

下面也来把这个联想S5手机的相关root操作整理一下了&#xff0c;咱们的这个手机也不是特别热门的机型&#xff0c;不过还是有不少的机友在用的&#xff0c;可是有的机友在使用这个手机的时间想给自己的手机进行root操作&#xff0c;可是一直找不到相关的root包在哪里下载&#…

吐槽下联想电脑-ThinkPad s5

吐槽下联想&#xff1a;我用的是联想ThinkPad s5笔记本&#xff0c;两年前到现在吧&#xff08;那时候长时间不怎么用&#xff09;&#xff0c;开机偶尔会有报警的提示音&#xff0c;最开始的时候去过联想售后&#xff0c;售后的工程师说主板坏了&#xff0c;维修需要3千、大概…

【数据结构】链表 详解

我们不废话&#xff0c;直入正题。 引入 什么是链表&#xff1f; 来看看百度怎么说&#xff1a; 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点&#xff08;链表中每一个元素称为结点&a…

STM32直接存储器存储的—般概念

STM32的直接存储器存储器&#xff08;Direct Memory Access&#xff0c;DMA&#xff09;是一种数据传输方式&#xff0c;它可以在不需要CPU干预的情况下&#xff0c;直接将数据从一个外设或内存传输到另一个外设或内存。DMA可以提高数据传输的效率&#xff0c;减少CPU的负担&am…

联想 android,【联想S5评测】系统:基于Android O的ZUI3.7 _联想 S5(4GB RAM/全网通)_手机评测-中关村在线...

系统&#xff1a;基于Android O的ZUI3.7 Lenovo S5搭载了基于Android O系统定制的ZUI 3.7系统&#xff0c;在我一天的使用来看&#xff0c;ZUI 3.7系统流畅性不错&#xff0c;而且加入了第四代U-Touch定义手势功能&#xff0c;可以替代虚拟键&#xff0c;更好的适配全面屏。 Le…

联想s5手机 支持的视频格式

刚刚购进一台联想s5&#xff0c;用着还不错&#xff0c;尤其摄像头是ccd的&#xff0c;像质没得说。 我北京购机&#xff0c;标配400元带票&#xff08;不带票是380&#xff09;&#xff0c;外加65元2G内存卡。 几天前&#xff0c;想上传个视频手机上看&#xff0c;发现它只支…