PDF Candy Desktop PRO v2.8.9安裝和Reverse分析

磁懸浮青蛙呱呱呱發表於2020-11-01

    PDF Candy Desktop具有如下功能:PDF與docx/rtf/odt/jpg/bmp/png/tiff等格式相互轉換,OCR,合併/拆分PDF,新增/移除密碼,旋轉/刪除/裁切頁面等。該軟體為QT開發,沒有加殼,字串也沒有刻意隱藏,用IDA開啟主程式PDFcandydt.exe檢視字串,搜尋license、register以及主介面上和未註冊、註冊碼錯誤相關的各類字串(把軟體介面設為英文有利於查詢字串),能看到很多有用的資訊,比如
    License file found [OK]/Corrupted/open
    Save license info [OK]. Info:%1
    Save license failed
    Validate license key [OK]
    Wrong key. Check your activation key and try again
    Free version tasks limit exceeded. Upgrade to PRO to get the unlimited access.
    Only %1 files are allowed to be added for conversion at once in Free version of the program.

    就從Only %1 files下手,這個字串和Free version tasks limit靠得很近,檢視對這兩個字串所在的函式sub_4DA060的引用,猜測在呼叫sub_4DA060之前會有call,cmp,test之類的指令,把5個call sub_4DA060附近全部看一遍,發現在每個call sub_4DA060之前都是call sub_413240; mov ecx, eax,再往前則都有mov ecx, eax; call sub_480DD0; test al, al;

這麼看來,sub_480DD0就是關鍵了,進sub_480DD0一看,驚人地簡單,就一個操作mov al, [ecx+28h],然後return. 用x32dbg開啟PDFcandydt.exe,在480DD0處下斷點,然後啟動,執行mov al, [ecx+28h]後al變成00. 結論已經很明顯了,直接改成mov eax,1. 儲存修改後嘗試啟動,彈窗The file 'xxx\PDFcandydt.exe' is not signed.

說明還有校驗,可惜,彈窗太容易讓我們定位關鍵跳轉了。這個軟體的作者還是經驗不足,檢測到軟體被修改,就應該不給任何提示直接退出,或者不顯示主介面,或者進入未註冊狀態,給了提示反倒容易被人去掉校驗。在IDA或者x32dbg中搜搜signed,定位到56C4F4,附近還能看到
    An unknown error occurred trying to verify the signature of the
    The signature is present, but specifically disallowed by the admin or user
    The signature is present, but not trusted
    The hash representing the subject or the publisher wasn',27h,'t explicitly trusted
    Admin policy has disabled user trust. No signature, publisher or timestamp errors
這些字串都位於sub_498B90內,檢視對sub_498B90的呼叫,只有49A72D一處呼叫,

從49A72D向前找跳轉,有一個49A6FC  jz  loc_49A817,改成jmp就大功告成了。程式主介面左下角的2 tasks left,Upgrade to PRO已經消失了,各種限制也沒有了。

不過這個軟體把PDF轉成docx的功能有嚴重問題,一直報錯ERR_PDF_TO_DOC_CONVERTION_FAILED,在我的測試中,沒有一個PDF被成功轉為docx。我可以確定不是poJie不完美導致的,因為在我pojie之前,拿原版程式測試轉換功能就遇到這個問題了。

 

相關文章