IAR Embedded Workbench 8051破解注册+授权文件图文教程(附注册机)
本文重点阐述了如何手动爆破 iar ewarm 6.x以及生成license,目的一是和大家分享下,二是自己记录下过程,以便应付日后iar更新,二是若有高手过目,请指正下不足之处。
一、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."
四、授权文件注册
license下载地址:
文件夹 | 授权程序 |
---|---|
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程序。
上一篇: xmind8怎么自己设计独特风格的模板?
下一篇: Nginx简介及配置文件详解