本文重点阐述了如何手动爆破 IAR EWARM 6.x以及生成License,目的一是和大家分享下,二是自己记录下过程,以便应付日后IAR更新,二是若有高手过目,请指正下不足之处。

 

软件名称:
IAR Embedded Workbench 8051 9.3 完美中文破解版(附注册机+破解教程)
软件大小:
3.2GB
更新时间:
2017-02-27

 

 

软件名称:
IAR Embedded Workbench For 8051(开发工具) 系列注册机 免费破解版
软件大小:
1.04MB
更新时间:
2017-02-27

 

一、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 代码段,发现如下代码:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

显然这里是创建了一个进程运行LicenseManager.exe程序,当LicenseManager.exe程序没有找到时,进程创建失败,弹出一个提示对话框,那么直接retun了这个函数就可以了,首先向下翻,找到函数结束返回代码:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

然后再向上翻,找到函数入库代码:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

选定函数入口行,空格键,直接修改为函数返回代码,即: retn 

IAR,Embedded,Workbench,破解版,IAR8051,注册机

这里需要注意的是,查看函数返回代码是为了保证堆栈平衡,关于堆栈平衡原理就不详细说了。

但是在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.",定位到代码行:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

在函数入口下断,F9运行程序,到达断点,ALT+K打开调用堆栈窗体,层层堆栈分析,发现可疑代码:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

先判断返回值eax是否为2,不为2的话ecx置0,然后判断eax是否为0 若eax=0则cl=1,若eax!=0则cl=0 最后在eax=cl返回

继续分析调用栈,发现只有此处返回1才OK,也就是说上一个函数返回值eax必须=0,

所以一开下断的函数入口改为:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

F9运行程序,发现提示内部错误,重新载入,定位到刚才修改的位置,修改代码,下断,F9运行,断下,CTRL+F9多次,来到此处:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

在此函数入口下断,重新载入程序,重复上面步骤,F9运行来到此处,F8单步运行,发现上图下断位置函数执行后会提示错误,

在此位置下断,重新载入程序,重复上面步骤,断在此处,F7跟入,分析后发现可疑代码:

IAR,Embedded,Workbench,破解版,IAR8051,注册机

经过多次分析,发现当此处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,破解版,IAR8051,注册机

IAR,Embedded,Workbench,破解版,IAR8051,注册机

 

文件夹 授权程序
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

复制相应的文件夹到指定的目录内:

XP: C:\Documents and Settings\All Users\Application Data\IARSystems\LicenseManagement\LicensePackages\

WIN7:C:\ProgramData\IARSystems\LicenseManagement\LicensePackages\

若路径不存在,则手动创建路径。

使用License授权不需要Patch程序。