IAR Embedded Workbench 破解方法+工具+授权文件
转自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 |
复制相应的文件夹到指定的目录内:
IAR Embedded Workbench 破解方法+工具+授权文件的更多相关文章
- IAR Embedded Workbench for ARM 6.50.6 & 6.60.1 破解补丁
IAR EWARM 6.50.6 & 6.60.1 破解 破解原理和方法见:http://blog.csdn.net/chivalrys/article/details/8564568 IAR ...
- IAR Embedded Workbench IDE 显示行号
第一次使用IAR Embedded Workbench IDE,默认设置是不现实代码行号的.显示代码行号方法如下:首先选择“Tools”菜单项,打开“IDE Option”对话框,然后在树状图中选择“ ...
- 【转】IAR Embedded Workbench for ARM 8.22.1 基础使用教程
@2018-12-15 [小记] IAR Embedded Workbench for ARM 8.22.1 基础使用教程
- IAR Embedded Workbench for ARM 8.22.1 基础使用教程
面向尚未熟悉且初次使用该软件的新手(比如我...) 1.建立新工作区 File-->>New Workspace 2.建立新项目 1) Project-->>Create Ne ...
- IAR EW8051-8.10.4安装及破解方法
第一步:获取破解license 1: 点击桌面左下角“开始”按钮,找到cmd.exe,右键创建cmd.exe 快捷方式到桌面: ————如果是windows7 ,请右键点击cmd.exe 快捷图标,点 ...
- IAR MSP430怎么破解?IAR for MSP430安装注册破解激活图文详细教程
IAR for MSP430全称IAR Embedded Workbench for MSP430,是一款功能强大的专业集成开发环境,软件包括项目管理.配置开发环境.创建编译器.定制具体编程方案等 ...
- Keil MDK 和 IAR 两款ARM开发工具区别比较
首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...
- 卡巴斯基2017激活教程_卡巴斯基2017用授权文件KEY激活的方法
原创:天诺时空 更新时间:2016-11-09 2016年9月7日,卡巴斯基2017版全新上市,卡巴斯基依旧为大家奉上满足您所有需求的安全软件产品,为不同年龄层.不同人群给予全方位保护,同时延续卡 ...
- ios开发者创建app应用开发授权文件 实战方法:
收到apple邮件成为合法的开发者后,进入https://developer.apple.com/account/ios/profile/profileList.action页面 总的有4步操作: 1 ...
随机推荐
- 集合练习——Set部分
我们知道list存储的是有序不唯一的元素. set存储的是无序唯一的元素. 那么下面看一个例子吧: package CollectionPart; import java.util.HashSet; ...
- JUnit4注解基本介绍
@After If you allocate external resources in a Before method you need to release them after the test ...
- JavaScript平常会跳的坑系列(一)
function Foo() { //定义foo函数 getName = function () { console.log('1');}; console.log(this); return thi ...
- .NET 统一用户管理 -- 统一鉴权
统一鉴权 目的 为什么要统一鉴权了,每一个业务系统几乎都离不开,用户,角色,权限 这个 3个基础功能,为了避免各个系统各自去开发一套权限管理等基础功能,也同时轻松管理每个用户的全部权限. 怎么做 ...
- 那天有个小孩跟我说LINQ(一) 转载
1 LINQ准备(代码下载) 新建项目 linq_Ch1控制台程序,新建一个Entity文件夹 1.1 对象初始化器 在Entity新建一个类Student,代码如下 using S ...
- C++ -windows与unix路径分隔符
文件路径中通常使用正斜杠和反斜杠 在Windows中 C++中“\\”是一种转义字符,他表示一个‘\’,就像\n表示回车一样.所以C++中的路径名: D:\matcom45\doc\users\_th ...
- asp.net:录入数据库的中文变问号
表格是可以接受中文的: 类型也是nvarchar的: 还是出现写中文变问号?? 这时候请加入转义大写N: 如: 原查询语句:insert into table1(name) values('蜘蛛侠' ...
- 记录关于使用ADO.NET 连接池连接Oracle时Session信息不更新的坑
最近的一个项目中,由于界面查询的数据量比较大,关联的表比较多,有些数据查出来需要临时保存起来供后面的查询使用,于是想到了用oracle的临时表来实现这个需求.大家都知道,oracle的临时表有两种:事 ...
- 九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)
题目地址:http://ac.jobdu.com/problem.php?pid=1455 题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元, ...
- 几个 JavaScript 奇技淫巧
#1使用双等号给布尔变量赋值,很容易联想到 var a = b || 123; 的写法 var a = b == 123;#2快速转换为布尔值 !!a#3防止页面被 iframe 调用 if(top ...