logo头像

星星給予仰望者光芒

無限試用 Navicat Premium

本文于 949 天之前發表,文章内容可能已經過時。

  逆向攻破,無限試用。

前言

經過一段時間後,試用期已到期,無法再繼續享受 Navicat Premium,所帶來的方便,如下圖:






決定來研究一下,該app相關的內碼,

在此聲明,該文章純屬學習研究,請勿用於其他途徑。




過程

  1. 找出二進制文件(mach-O、unix執行檔),

    /Applications/Navicat Premium.app/Contents/MacOS/Navicat Premium
  2. 使用 Hopper Disassembler v4 Standard Edition (4.5.13),來對二進制文件反編譯
  3. 搜索字串http://www.navicat.com/cht/store

    找到
1
2
3
4
5
6
7
8
9
10
11
## 找到使用者
0000000102d5bf5b db "http://www.navicat.com/cht/store", 0 ; DATA XREF=cfstring_http___www_navicat_com_cht_store

## 相關地址
0000000103c2b600 dq 0x0000000104750310, 0x00000000000007c8, 0x0000000102d5bf5b, 0x0000000000000020 ; "http://www.navicat.com/cht/store", DATA XREF=qword_103f773b8

## 使用者
0000000103f773b8 dq 0x0000000103c2b600 ; @"http://www.navicat.com/cht/store", DATA XREF=+[Registration ApplicationChecking:isLaunch:]+481, +[Registration ApplicationChecking:isLaunch:]+899, +[Registration ApplicationChecking:isLaunch:]+5518, +[Registration ApplicationChecking:isLaunch:]+5758, +[Registration ApplicationChecking:isLaunch:]+6039, +[Registration ApplicationChecking:isLaunch:]+9206, -[Registration BuyNow:]+52

## ↑ [Registration ApplicationChecking:isLaunch:],如名得知,這可能是一個檢查方法

查看一下方法的匯編程式碼(assembly language),

1
2
3
4
mov        ebx, eax
cmp ebx, 0xffffffff
je loc_100325e47

其關鍵指令如上,賦值給ebx,再進行判斷exb如果等於1,就跳轉至地址loc_100325e47,然而如果不等於則跳轉至loc_100325e47loc_100325e47也是通過檢測後執行的方法。

  1. 修改指令
1
2
3
4

mov ebx, 0x0
je loc_100325e47

直接跳過判斷指令,來到最終目的。

  1. 儲存並輸出
  2. 拖回原位置,並取代

總結

此app對於購買流程的安全保護,幾乎可以說是零,對於一般攻擊者而言,很容易就可以完成了,另外也能使用插件的方式去hook相關方法再去繞過檢測,但如果熟悉匯編程式碼(assembly language),在操作繞過方面會比較簡易且快速,另外呼籲大家務必支持正版,杜絕盜版。