LM-X加密介绍
LM-X加密是一套完善的加密方案(百度几乎查不到相关网页,所以个人觉得有必要拓荒一下),它提供了一整套的解决方法,比如服务器license、试用license、插件license、版本控制等等,兼容常见的windows、linux、MAC os、BSD等。它的开发公司是位于丹麦和波兰欧洲的一家公司,X-Formation(可以预见欧洲公司用这套方案的相对较多,是欧洲公司开发的软件应该会优先考虑它)。
我的介绍的软件
不提及这个软件的名字,是一家位于德国的欧洲大牌公司开发的软件。LM-X加密有很多解决方案,该软件是java开发的,主要是由java开发,但是主程序是c++开发。
加密方法的确认
关键字:
lmx-enduser-tools_version.msi
lmx-enduser-tools_version.sh
LM-X end-user tools and license server installer
lmx-serv.exe
lmx-serv
no_security_config\lmx-serv.exe
no_security_config/lmx-serv
lmx-serv.cfg
lmx-serv.cfg
liblmxvendor.dll
liblmxvendor.so or
liblmxvendor.dylib
liblmx.dll
liblmx.so or liblmx.dylib
liblmxnet.dll
liblmxnetd.dll
lmxjava.dll
liblmxjava.so or
liblmxjava.dylib
liblmxjava.jar
liblmxjava.jar
no_security_config\liblmx.dll
lmxendutil.exe
lmxendutil
欧洲人的自信
欧洲人对自己加密方法非常自信,把一些加密相关的文件都列在的自己的官网上,还有相关软件下载。
windows java加密的主要文件
第一个主程序、第二个lmxjava.dll(64位的是lmxjava_64.dll)、license文件。主程序加密相关的主要工作是1、载入lmxjava.dll并验证文件的一致性,如果文件经过改动,校验失败,就会报错并退出;2、动态载入lmxjava.dll的部分数据(解密相关),进行license的验证,验证成功后加密部分的程式才能载入运行。
bug发现
主程序在验证lmxjava.dll的时,验证的是native_lib/lmxjava.dll,但优先载入的却是另一个目录没有验证的lmxjava.dll。于是把破解的lmxjava.dll拷贝入这个没有验证的目录,果然过了验证,导入破解后的license,直接过!欧洲人果然君子,防君子不防小人!好可怕的自信!
思路的二次验证
通过非常手段,破解了主程序lmxjava.dll的验证,替换native_lib/lmxjava.dll,载入破解license,同样过了验证,正常启动了主程序。
亡羊补牢
拿到程序的最新升级版本后,bug已经被改正了,优先验证优先载入目录的lmxjava.dll,如果这个目录没有再去以前的目录去验证和载入。
结束语
细心和耐心是发现问题的关键,当然也要有一定的计算机水平,但有时候水平不是关键,低级的bug让人啼笑皆非!