愚人節破解Tracealyzer 4.2.12

這幾天被F0上的freeRTOS搞崩潰了。f0的可編輯優先級只有4級,而hal封裝的cmsis-os的優先級每一集freeRTOS本身的優先級倒來換去。把我搞煩躁了。決定使用Tracealyzer來追蹤一下任務運行情況。(還不知道空間夠不夠,不夠只能費大功夫使用RTX,並利用keil自帶的工具簡單調試了)
本教程旨在推廣大家使用Tracealyzer 和SystemView類工具,前者價格要一萬多。對於獨立開發者這個價格不太友好,但建議公司員工還是掏錢吧。
(管理員如果覺得發在這裏不合適,可以私信我。我可以刪帖。)
在開始之前,還是要感謝其它幾個帖子給的一些框架性的指引。但我是新手,中間的過程有很多坑。
嵌入式系統神器 FreeRTOS+Trace 破解分析@52pojie
青竹雨仙@CSDN】
本帖子破解的工具是從官網趁熱下載的最新版本v4.2.12. 從v4開始變化很大,不再區分不同的RTOS。如果安裝好之後,你會發現安裝包裏面包含了所有版本相關文件:

包含RTX5,freeRTOS,Micrium,SaftRTOS,ThreadX,Vxworks等。(沒有RTT)
在破解之前,需要知道幾個工具:
1、de4dot : https://github.com/0xd4d/de4dot  一款反混淆和脫殼的工具
2、dnSpy : https://github.com/0xd4d/dnSpy  .NET的反編譯工具,可以以C#或者IL,VB等語言查看源代碼。
基本步驟是:
1、下載目標軟件和上面提到的兩個工具(這兩個工具只適合.NET的程序,其餘的軟件需要用別的殼檢查工具確定程序和工具)
2、下載Tracealyzer的時候要注意申請一下Evaluation 版本的序列號。然後安裝完軟件,之後用這個序列號先online activate一下。
激活完之後的license位於C:\ProgramData\Tracealyzer Data目錄下的License.xml建議拷貝之後備份。

3、先反混淆,然後再斷點調試,修改,最後保存測試。後面幾步可能要反覆幾次知道完全破解。
【不要讓我把破解之後的文件傳給你,請自己動手。】
第三步很繁瑣。這後面就再專門講一下。
A、反混淆
找到de4dot的文件夾,用cmd打開命令行。我們假定你的tracealyzer安裝目錄是D:\Program Files\Percepio\Tracealyzer 4 。


用:

<div>mkdir “D:\Program Files\Percepio\cleaned”</div><div>de4dot -r "D:\Program Files\Percepio\Tracealyzer 4" -ro "D:\Program Files\Percepio\cleaned"</div>


其中-r指定原始文件所在的文件夾,而-ro是輸出文件所在的文件夾。你需要按照自己安裝的目錄自行更改代碼。
爲了防止後面有問題,你可以用python寫一段代碼來將文件拷貝到另一個文件夾。(見附件壓縮包中的backup.py,下載放在D:\Program Files\Percepio\目錄中

<div>cd "“D:\Program Files\Percepio\"</div><div>mkdir “D:\Program Files\Percepio\original”</div><div>python3 backup.py</div>

這段python代碼自動將已經cleaned的文件替代原始文件,並將原始文件備份到backup目錄中。你也可以自己簡單替換也可以,這樣原始文件就沒有了,但無可厚非。
B、調試找代碼
在你的License.xml文件中有ProductId和EditionId兩段序列號,後面還有代表不同平臺的產品序列號。如果你是evalation的化你的序列號應該和我這裏的不一樣。我這裏的是手動改的。時間和產品號都是自己改的。

<Product>Tracealyzer - Professional Edition</Product>
    <ProductId>{07DA2EBE-0932-44C2-AC8C-F11ED48DD0AB}</ProductId>
    <EditionId>{07DA2EBE-0932-44C2-AC8C-F11ED48DD0AB}</EditionId>
    <LicensedTo>Personal</LicensedTo>
    <ExpiresOn>2029-04-11</ExpiresOn>
    <SupportThrough>2030-04-01</SupportThrough>
    <Components>
      <Component>
        <Id>{B1CF5B88-ADA5-4B2A-81AF-257054106205}</Id>
        <Name>Tracealyzer Application</Name>
      </Component>
      <Component>
        <Id>{469D108A-B824-4C27-99ED-98B8629BFCE0}</Id>
        <Name>FreeRTOS Support</Name>
      </Component>

從代碼分析:
        "Free Edition": FA52DADE-887B-495D-8258-898B39E189CB
        "Standard Edition": 050C587E-D34F-4361-B344-F8FCC4473477
        "":07DA2EBE-0932-44C2-AC8C-F11ED48DD0AB
        "Academic Edition": 20478608-C79A-48A9-A969-35541787D2C0
        "Evaluation Edition" : F5780CA8-1FC7-4AA4-9B1E-C7F7D6E19496

那怎麼分析吶?這時候就用到了dnSpy。直接打開之後,將Tracealyzer.exe拖入。



上圖展示了調試的步驟。我通常先點開始(裏面選擇entry point模式),這時候我再搜索string/number的方式找到evalution部分的號碼。
新版本改變之後,應該仍然可以通過此方法找到產品序列號。
這時候修改一下兩個ID和時間。現在就開始正式調試了。
C、找到SignedLicense
4.2的邏輯更改了很多,但基本方法還是找到它。
我改了1和3以及2指向的函數,基本就可以工作了。記得compile完之後要保存之後再strart一遍。按照如上方法基本可以破解之後的版本。(如果變化不大。)基本思路是最終返回GEnum43.const_0
我曾直接進入之後return,發現有些問題。目前方法,可以使用。
應該還有不用註冊就破解的方法,暫時沒有找到。現在還需要evalution的碼,然後修改路徑。

重要的要先說一下。本人只提供方法,不提供破解文件。不要請我發文件。這樣你是拉我走上被告席的節奏。

 

【發表在CSDN和stmcu.org.cn】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章