ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:29.15KB ,
资源ID:12144482      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12144482.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(制作Flexlm license总结.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

制作Flexlm license总结.docx

1、制作Flexlm license总结标 题: 【原创】制作Flexlm license总结!作 者: laoqian时 间: 2005-12-15,17:45:50链 接: 作者:laoqianFCG时间:2005-12-15软件名称:Zendenc(FLEXlm7.1d)软件类别:NolanBlender提供的经典例子软件介绍:FLEXlm7.1d加密破解工具:ollydbg1.10(FLY修改),w32Dasm_2002828_pll621,UltraEdit10.0,Flexlm7.2SDK,calcseed,lmkg7,lmcryptgui,flexlm9.2sdk的源码等破解目的:制

2、作无限制使用license文件通过这篇文章我们将向你介绍如何制作FlexLm的license,并总结经验第一部分:废话Zendenc这个软件是NolanBlender提供的经典例题,crackZ或网上有下载和分析文章。玩了几个Flexlm,想总结一下,就拿它来开刀方便!本文是关于7.x的,但有部分适用于8.x和9.x,甚至10.x。第二部分:转入正题破解FlexLm最主要的是找到4样东西.1.确定版本号2.找vendor3.计算ENCRYPTION_SEED4.找FEATURE有了这几个,就可以使用FlexLmSDK(如果你有)或工具做出注册机了.btw:FlexLmSDK一般是通用兼容的的,

3、比如7.2就可以制作7.1的,甚至有时7.1也可以制作7.2的,关键是参数设置。1.确定FlexLm版本号BEHAVIORVersion方法一:*用二进制编辑器,推荐使用HexWorkshop(我用UltraEdit10.0,呵呵),它的查找功能很强,特别是FindAllInstances更是我最最常用的.在查找对话框Type中选择类型TextString,Value中输入(#)FLEXlmv,查找,(#)FLEXlmv后面的就是版本号.【以上是tulipfanCCG大虾说的】方法二:用FlexlmSDK里的lmtools(在flexlmv7.1i86_n3目录里),运行进入Utilities

4、,点击“Browse”查找你的Flexlm加密的程序主exe或dll,然后“findversion”,在下面就会显示你的Flexlm版本,用v7.1版甚至可以看到8.3版以后,是通用的。有个别程序可能此法不行!方法三:在反汇编以后,搜索“87654321”,在前面设断点在FlexlmSDK里lm_code.h文件里你可以看到一下几句:代码:*Vendorsprivateseeds,-replacewith32-bitnumbersthat*youmakeup.*/#defineENCRYPTION_SEED10x87654321#defineENCRYPTION_SEED20x12345678

5、/*FLEXlmvendorkeys-enterasreceivedfromGlobetrotter.*ChangingthesekeyshasNOimpactonlicensefiles(unlike*theENCRYPTION_SEEDs).*/*-*Generatethesekeyswith:lmvkey-vdemo-d(+3months)-pALL-cDEMO*(Useadateapprox3monthsout)*/这说明demo的SEED10x87654321,SEED20x12345678对应Zendenc里是:代码:0043391DE8184B0400call0043392283

6、C40Caddesp,0C004339258D8D40FFFFFFleaecx,dwordptrss:ebp-C0;我们可以在这里设断点!0043392B51pushecx0043392C8B9530FFFFFFmovedx,dwordptrss:ebp-D0;ebp-D0地址是以后要用的!0043393281C24C010000addedx,14C;计算得到VENDOR地址0043393852pushedx;VENDOR入栈!(ASCIIzend)004339398B8530FFFFFFmoveax,dwordptrss:ebp-D00043393F50pusheax00433940E895

7、560000callzendenc.00438FDA;这个call就是著名的所谓7648B98E标志call!后面要进去的!0043394583C40Caddesp,0C0043394881BD44FFFFFF214cmpdwordptrss:ebp-BC,87654321;此处比较是否是demo的seed1,当然在此seed1已被加密!00433952740Cjeshortzendenc.00433960;此处比较是否是demo的seed2,当然在此seed2已被加密!0043395481BD48FFFFFF785cmpdwordptrss:ebp-B8,123456780043395E75

8、5Djnzshortzendenc.004339BD004339608B8D30FFFFFFmovecx,dwordptrss:ebp-D00043396683791400cmpdwordptrds:ecx+14,00043396A7417jeshortzendenc.00433983我们在断点停下debp-c0代码:0012D40400000004_.0012D408E0AAA4A0_?此seed1已被加密0012D40CC0121579y_此seed2已被加密!0012D4103F9F6A79yj?此VENDOR_KEY1已被加密!0012D41425DC750Eu?此VENDOR_KEY

9、2已被加密!0012D418B8B046C5牌案0012D41C0B2EAC4EN?.向下拉看0012D4A800000000.0012D4AC00010007_._.0012D4B037300064d.07此处显示7.1d0012D4B40000312E.1.7.10012D4B800000000.这之后,等我们第一次走过著名的所谓7648B98E标志call,“00433940callzendenc.00438FDA”以后,会发现被加密seed又改变了,其实就是简单的xor,可是这个xor我们不得而知!我们得到BEHAVIORVersionV7.1dbtw:87654321此处,在6.x版

10、时,可以得到真seed,参考文章“AnsoftSerenadev8.5-Tutorial”代码:Ialsorememberedthatthechecksforthedefaultseedcodes(shippedwiththeSDK)wasagoodplacetofishthecorrectseeds,asimpledisassemblysearchfor87654321findsthiscode:-:00429C4CCMPD,EBP-34,87654321-Checkforencryption_seed1.:00429C53JZ00429C5E-JumptoError.:00429C55CM

11、PD,EBP-30,12345678-Checkforencryption_seed2.:00429C5CJNZ00429C85-Goodjump.:00429C5EMOVEDI,FFFFFFA5l_initb.l_init-l_sg(1)a.lc_checkout-l_checkoutb.l_checkout-lm_start_real(2)c.lm_start_real-l_good_lic_key(3)d.l_good_lic_key-l_sg(2)从上面可以看到它们的调用关系.我们可以通过l_sg确定vendor_id和ENCRYPTION_SEED,通过lc_checkout可以确定

12、FEATUREIDA通过FlexLm的sig文件可以确定上面的大部分函数,再通过他们的调用关系,很容易找到其他函数.制作FlexLm的批处理文件和工具包可去CrackZ去下载.最后定位到l_sg函数”*我们有9.2的source,我们看到lm_ckout.c中有下面一段,那几个数就是确定l_sg函数上很有用的,针对0x7648b98e;v7.x*/0x6f7330b8;/*-v8.x,9.x*/下面给出参考:V7glseed=0x788F71D2seedval=0x7648B98EV8glseed=0x3CDE3EBFseedval=0x6F73330B8V9glseed=0x72346B53

13、seedval=0x6F7330B8v10glseed=0x5332322Fseedval=0x6F7330B8关于这一段,zhanzixin有一点小小的补充。0x7648b98e这个数字,被称为seedval的,在版本4、5、6中是0xa8f38730在版本7.0-8.0c中是0x7648b98e在版本8.0d以后,一直没变,是0x6f7330b8。代码:/*-*Alsousedbyflexcrypt-notifyifAPIchanges.*/voidl_sg(LM_HANDLE*job,char*vendor_id,VENDORCODE*key)/*-l_sgmeanssignaturev

14、endor_key5*/unsignedlongkeys4;charsigSIGSIZE=0;/*-Ifyouchangethis,youmustchangeitalsoinutils/lmnewgen.c*/*-unsignedlongx=0xa8f38730;v3.1*/*-unsignedlongx=0x7648b98e;v7.0*/unsignedlongx=0x6f7330b8;/*-v8.x*/externvoid(*L_UNIQ_KEY5_FUNC)();unsignedlongd0=0,d1=0;inti=SIGSIZE-1;if(job-options-flags&LM_OP

15、TFLAG_CUSTOM_KEY5)&L_UNIQ_KEY5_FUNC)(*L_UNIQ_KEY5_FUNC)(job,vendor_id,key);return;废话少说,我们直接反汇编zendenc.exe,我们查找“7648B98E”,来到下面,好像就这么,处。前人的经验就是宝贵啊,我省了很多事!代码:.text:00438FDA;=SUBROUTINE?=.text:00438FDA.text:00438FDA;Attributes:bp-basedframe.text:00438FDA.text:00438FDAsub_438FDAprocnear;CODEXREF:sub_432C

16、C4+C7C_p.text:00438FDA;sub_437621+B9_p.text:00438FDA.text:00438FDApushebp=先在这个地方下断.text:00438FDBmovebp,esp.text:00438FDDsubesp,30h.text:00438FE0movebp+var_10,7648B98Eh=就是这个数在确定l_sg函数上很有用.text:00438FE7movebp+var_14,3.text:00438FEEmoveax,ebp+arg_0.text:00438FF1movecx,eax+6Ch.text:00438FF4movedx,ecx+1D4h.text:00438FFAandedx,8000h.text:00439000testedx,edx.text:00439002jzshortloc_439027=这个跳前面分析了,第一次肯定会跳的!第二次再来!.text:00439004cmpdword_49E5EC,0.text:0043900

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1