轉自IAR Embedded Workbench 破解方法+工具+授權文件
本文重點闡述了如何手動爆破 IAR EWARM 6.x以及生成License,目的一是和大家分享下,二是自己記錄下過程,以便應付日后IAR更新,二是若有高手過目,請指正下不足之處。
EWARM-CD:http://pan.baidu.com/share/link?uk=3842212607&shareid=1472767783
EWAVR-CD:http://pan.baidu.com/share/link?uk=3842212607&shareid=1472767783
EW430-CD:http://pan.baidu.com/share/link?uk=3842212607&shareid=1472767783
EWSTM8-CD:http://pan.baidu.com/share/link?uk=3842212607&shareid=1472767783
EW8051-CD:http://pan.baidu.com/share/link?uk=3842212607&shareid=1472767783
一、IAR Embedded Workbench IDE 處理
到安裝目錄下找到common\bin\LicenseManager.exe文件,這個文件時IAR授權管理程序,每次啟動IAR都會運行一下這個程序檢測有沒有授權,把它隨便個改個名字(PS:直接刪除也可以),這樣直接運行IAR IDE 會彈出一個對話框提示運行LicenseManager失敗,就從這里入手。
OD直接加載IarIdePm.exe,設斷點 bp MessageBoxA ,F9跑起來,斷在user32.MessageBoxA,CTRL+F9 出現提示對話框,點擊確定,CTRL+F9,F8 一直運行到IarIdePm.exe 代碼段,發現如下代碼:
顯然這里是創建了一個進程運行LicenseManager.exe程序,當LicenseManager.exe程序沒有找到時,進程創建失敗,彈出一個提示對話框,那么直接retun了這個函數就可以了,首先向下翻,找到函數結束返回代碼:
然后再向上翻,找到函數入庫代碼:
選定函數入口行,空格鍵,直接修改為函數返回代碼,即: retn
這里需要注意的是,查看函數返回代碼是為了保證堆棧平衡,關於堆棧平衡原理就不詳細說了。
但是在OD里面修改了是沒有用的,使用UltraEdit或WinHex打開IarIdePm.exe,搜索原函數入口附件十六進制數據,然后根據修改后的數據替換,
具體步驟就不闡述了,自己搜索。
這樣處理之后,再直接運行IAR,就不會有彈出提示對話框了,但是IAR實質是沒有破解的,當你編譯一個工程時會提示:
Fatal Error[LMS001]: No license found. Use the IAR License Manager to resolve the problem.[LicenseCheck:2.12.3.454, RMS:8.5.0.0021, Feature:ARM.EW.COMPILER,
二、iccarm.exe 處理
在安裝目錄下找到arm\bin\iccarm.exe程序,OD載入,搜索字符串 ,找到"Must request at least one license.",定位到代碼行:
在函數入口下斷,F9運行程序,到達斷點,ALT+K打開調用堆棧窗體,層層堆棧分析,發現可疑代碼:
先判斷返回值eax是否為2,不為2的話ecx置0,然后判斷eax是否為0 若eax=0則cl=1,若eax!=0則cl=0 最后在eax=cl返回
繼續分析調用棧,發現只有此處返回1才OK,也就是說上一個函數返回值eax必須=0,
所以一開下斷的函數入口改為:
F9運行程序,發現提示內部錯誤,重新載入,定位到剛才修改的位置,修改代碼,下斷,F9運行,斷下,CTRL+F9多次,來到此處:
在此函數入口下斷,重新載入程序,重復上面步驟,F9運行來到此處,F8單步運行,發現上圖下斷位置函數執行后會提示錯誤,
在此位置下斷,重新載入程序,重復上面步驟,斷在此處,F7跟入,分析后發現可疑代碼:
經過多次分析,發現當此處AL=1時,程序運行成功,所以TEST上面的函數執行將AL置1即可,F7跟入兩次以后找到將函數入口改為下面代碼即可。
mov al,1
retc 0c
修改以上兩處后發現iccarm.exe可以成功運行,且不在提示未授權,使用工具修改iccarm.exe保存
經過這個步驟后用iar打開工程,已經可以成功編譯了。但是不能在線調試仿真。
三、仿真動態庫處理
IAR EWARM共支持多種在線仿真,在安裝目錄下arm\bin下能找到對應的動態庫,經過分析發現,只有以下幾個動態庫檢測授權狀態:
armangel.dll | Angel |
armgdbserv.dll | GDB Server |
armjet.dll | I-jet |
armjlink.dll | J-Link/J-Trace |
armjtag.dll | JTAGE |
armlmiftdi.dll | TI Stellaris |
armrdi.dll | RDI |
armrom.dll | ROM-Monitor |
armsim2.dll | Simulator |
armXDS100.dll | TI XDS100 |
以上幾個動態庫只需安裝第二步驟處理,修改第一處位置即可,關鍵字符串"Must request at least one license."
經過這個步驟后,iar就可以在線仿真調試了。
三、ilinkarm.exe處理
經過仔細檢查,發現arm\bin\linkarm.exe此文件也有授權檢驗,檢驗方法很簡單,OD載入,搜索字符串,查找"License"。
此文件內找到以下可疑字符串:"This product is not licensed for MISRA C checking"
爆破方法和上一個步驟相同,修改一處即可,關鍵字符串"Must request at least one license."
四、處理工具
IAR Embedded Workbench for ARM 6.50.2 破解補丁http://download.csdn.net/detail/chivalrys/5051334
IAR Embedded Workbench for ARM 6.50.3 破解補丁http://download.csdn.net/detail/chivalrys/5134248
IAR Embedded Workbench for ARM 6.50.5 破解補丁http://download.csdn.net/detail/chivalrys/5319261
IAR Embedded Workbench for ARM 6.50.6 破解補丁http://download.csdn.net/detail/chivalrys/5522721
IAR Embedded Workbench for ARM 6.60.1 破解補丁http://download.csdn.net/detail/chivalrys/5682951
IAR Embedded Workbench for ARM 6.70.1 破解補丁http://download.csdn.net/detail/chivalrys/5682951
IAR Embedded Workbench for ARM 6.70.2 破解補丁http://download.csdn.net/detail/chivalrys/5682951
IAR Embedded Workbench for ARM 6.70.3 破解補丁http://download.csdn.net/detail/chivalrys/5682951
以上處理方式目前可用,仍在測試中,暫未發現bug。
五、授權文件注冊


文件夾 | 授權程序 |
---|---|
430 | IAR Embedded Workbench for Texas Instruments 430 5.60 |
8051 | IAR Embedded Workbench for 8051 8.30 |
ARM | IAR Embedded Workbench for ARM 6.70 |
AVR | IAR Embedded Workbench for Atmel AVR 6.30 |
STM8 | IAR Embedded Workbench for STMicroelectronics STM8 1.42 |
復制相應的文件夾到指定的目錄內: