吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4597|回复: 3
收起左侧

[会员申请] 申请会员ID:没方向感【申请通过】

[复制链接]
吾爱游客  发表于 2018-6-16 12:50
1、申 请 I D :没方向感
2、个人邮箱:zsj008od@sina.com
3、原创技术文章:

看雪ID:方向感,已在看雪论坛给hmilywen发一条短消息:)
本想申请“方向感”这个id的,好像被占用了,不知道是不是多年前自己占用的,那就重新申请一个吧。
小Q截图-20180616123721.png

看雪精华帖:flexlm程序替换pubkey制作license的血泪史 和 对 .net程序进行手术的一点小小心得:)

小Q截图-20180616124623.png


[原创]flexlm程序替换pubkey制作license的血泪史
[C] 纯文本查看 复制代码
多年前这个软件都是直接爆破的,程序在lc_checkout的时候会调用setjmp,直接修改这里跳转,让他返回0,实现了不要lic也可以直接运行程序。

if (setjmp(job->jobcatch))
return 0;

补丁的程序太多,setjmp在msvcrxx.dll中,直接修改msvcrxx.dll的setjmp3,在里面判断调用进程是不是需要补丁的程序,是就直接返回0,否还是继续执行setjmp3.用这个方法实现了不修改程序就破解了。


多年后的今天,翻看论坛前辈留下的宝贵资料,结合sdk源码,奋斗了多少个日日夜夜,终于重新对这个软件打了补丁,作出了注册机。

大概方法就是手动或用程序替换程序的pubkey,(当然你也可以直接修改l_pubkey_verify,直接返回0,只要lic格式跟原版一致,例如将一个试用lic的试用时间往后修改一下,程序就能运行。)找到ENCRYPTION_SEED1/2,修改sdk代码,生成lmcrypt就行了。

pubkey的手动替换,请仔细阅读ECC替换公钥实践,这个方法适用于任何版本,pubkey分布在lm_new.c中,里面夹杂了大量的垃圾代码,通过asm搜索,再F5,很容易找到这些pubkey,替换成你自己生成的pubkey,然后制作一个dif文件,自动替换,如:

This difference file has been created by IDA Pro
0039F0F8: 76 76
0039F6F4: 13 cf
0039F294: 42 27
0039F068: 26 bc
0039F630: 4D 05
0039F3F4: 99 3c
0039F518: 88 bb

pubkey的自动替换,可以使用关于Generic ECC pubkey replacer by tanker, v1.70,但是他不支持11.9.1,用这个工具只能将pubkey替换成特定的pubkey,当然可以替换这个工具中内置的pubkey成你自己的。如果用网上流传的命令行pubkey -d xxx -y xxxx.exe,制作的lic程序不认,他替换的内容太多了,我只替换Group0 PubKey239,采用命令行pubkey -s 2 -d xxx -y xxxx.exe即可。采用这个工具自带的pubkey,记得将他对应的PriKey239贴到sdk的lmprikey.h中。

pubkey的定位和查看:版本低的可以用flexlm ECC pubkey 自动搜索工具 ,太高的估计只能自己找了。如何定位可以参照ECC替换公钥实践

很多帖子说查找LM_SEED1/2/3,有看到说LM_SEED-》ENCRYPTION_SEED是不可逆的,一般找到的都是ENCRYPTION_SEED1、2,所以找到的都是ENCRYPTION_SEED1/2,不要当成LM_SEED1、2贴到lm_code.h中,且这个ENCRYPTION_SEED1/2贴到lm_code.h作出的lic也不能用,必须贴到lmseeds.h中,网上很多说贴到lm_code.h,我是没成功过。ENCRYPTION_SEED3、4无关紧要,不用修改。

根据以上方法制作的lic,程序替换过pubkey后,正常运行,但是vendor.exe却运行不了,弹窗提示can't initialize错误,dos窗口提示
D:\>xxx 1 2 3
17:42:31 (xxx) FLEXnet Licensing version v11.6.0.0 build 60117 i86_n3
17:42:33 (xxx) EXITING DUE TO SIGNAL 43 Exit reason 20

(vendor.exe需要传入3个参数才能运行,且lic他从C:\flexlm\license.dat读取,所以先将lic复制成C:\flexlm\license.dat)
最后发现许可有问题,原来是
FEATURE V1 xxx 5.1 1-oct-2017 uncounted HOSTID=ANY \
SIGN="065C C004 8667
需要改成
SERVER My_PC 1010b1915316
VENDOR xxx
USE_SERVER
INCREMENT V1 xxx 5.1 1-oct-2017 uncounted HOSTID=ANY \
SIGN="065C C004 8667

再次运行xxx.exe,终于成功了。


[原创]对.net程序进行手术的一点小小心得:)
[C] 纯文本查看 复制代码
1. 用ilspy、dotPeek、JustDecompile、Reflector等工具,反汇编源代码成C#,用ilspy动态调试,找到关键点
2.1 用SimpleAssemblyExplorer打开,对比ilspy中找到的关键点,直接修改il,保存修改文件,大部分没有强名称的程序立刻能运行,检查找到的关键点是否正确。用这类直接修改il的工具,补丁后的文件与原文件对比,改变的地方比较多,文件差异比较大,一部分程序可以直接运行,另外一部分有强名称的,程序运行提示错误。对dll做过任何修改,过不了强名称,不能用gacutil /i的方式安装dll到GAC,解决方法有:1.直接复制到GAC中替换同名文件(有朋友说会导致莫名其妙的问题,可能是修改过度,可考虑下面只补丁几个字节的方法),2.重新签名,可对付某些SDK的dll。3.将dll从中卸载或删除,将补丁后的dll复制到exe目录。
2.2 用ildasm反汇编成il,对比ilspy,找到关键点,设置ildasm,让其显示字节码,参考字节码,手工用二进制编辑软件对文件进行搜索、替换。这种方法补丁后的文件,与源文件对比,改动较小,可能只用几个字节,但也不能用gacutil /i安装dll到GAC。再好点的方法就采用2.3的方法
2.3 将文件直接用ildasm或DotNetHelper反汇编成il,直接修改il文件,再编译生成exe或dll,重新签名即可。(遇到混淆过的,先用de4dot反混淆,再修改),遇到il无法编译的,只能采用2.2的方法,直接手工修改exe的二进制文件。
3. 关于重新签名,试过Strong.Name.Helper.v1.7-whoknows、StrongNameRemover、admiraldebilitate_v0.2等,都不理想,(可能是我的问题,不会用),自己觉得最有效的方法是采用批处理+snr,先替换签名,再重新生成key用sn签名。对dll重新签过名了,调用他的exe文件也需要替换签名或重新签名。
4. 当直接修改il时,拿不定il命令是否对的,可以用1中提到的工具将程序反编译成项目文件,提取相关部分的c#代码,先修改成想要的内容,在VS中编译,生成exe或dll,(也可以用Reflector的Snippy)再用ildasm去把il代码抠出来,对比着来对原来的程序进行补丁。

自己常用2.2方法,大部分不用重新签名,最小修改后替换到GAC中。

以上是个人总结的,如果有不对的地方希望大家能指点一下,有用的,请致谢哦:)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2018-6-19 21:31
I D:没方向感
邮箱:zsj008od@sina.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

PS:帖子未达到精华,但鉴于加密狗方面讨论不多,给予通过,希望以后可以带来更多交流分析。
hanebaby 发表于 2018-6-20 14:29
没方向感 发表于 2018-6-27 23:49
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 07:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表