能力值:
(RANK:350 )
|
-
-
2 楼
不要违规点将
最初由 foolchat 发布 【求助】请Laoqian赐教SentinelLM 的破解思路
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
对不起 刚来的不好意思
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
可以上http://woodmann.com/crackz看看,有详细的教程。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
Sentinellm的破解很难也很麻烦。必须要有SentinelLM的SDK。首先要破解SDK的狗。然后要将您想破解的软件的硬件ID(也叫Vendor_ID)替换掉SDK本身对应的Vendor_ID,在您想破解的软件软件中要找出feature name及version,然后用修改了的SDK计算出LIC。所用的工具为S-ice,ida,sig for sentinellm,sentinellm sdk等。关键的是您要读懂sentinellm的一些资料,这些资料在http://www.woodmann.net/crackz/中可以查到,很经典的。
用Ida反汇编wlscgen.exe。必须load sentinellm的sig,load superpro dog的sig.
与dog相关的函数为:
_RnboFindFirstUnit _RnboFindnextUnit
_RnboSproQuery _RnboSproRead,在Ida中就可知道上述函数的地址。
对以上函数进行模拟,即可破解Wlscgen.exe中的SuperPro加密锁。
在http://bingle.pku.edu.cn/中搜索SentineLM,可以得到SDK的下载地址。但要作SentinelLM的破解,您最好把www.woodmann.net/crackz中的文章读懂。
用Flair将SDK中lsapiw32.lib转换得到lsapiw32.sig,该sig 即为Sig for SentineLM
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
SENTINELLM与FLEXLM相比实际上会简单些
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
制作SentineLM的license文件必须要有SDK,否则的话只有爆破。
而制作FlexLM的licesne文件可以不需要SDK。从需不需要SDK的角度来说,SentineLM要难于FlexLM。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
难度上,SENTINELLM要小很多,当然如果SDK没有SENTINELPRO保护的话就更不值一提了。FLEXLM主要是被人研究得太透了,CRACKZ上两者的文章实际上也反应了两者的难度区别。至于FLEXLM不需要SDK也能做出,SENTINELLM也是一样的,当然涉及到自定义加密的问题上,SDK都是必须的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
SENTINELLM与FLEXLM都不难的 和一般小软件没有什么区别。sdk生成也好,爆破也好,没什么难度,和一般共享程序没有多大的区别,跟起来小心点就是了,几次下来 有经验,很快就能over了。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我下了一个你用的找的《SentinelLM加密分析及破解方法》,我没有权限上传,
就把大致内容贴过来:(请你们也帮帮忙解决我的问题吧,http://bbs.pediy.com/showthread.php?s=&threadid=30563)
SentinelLM就Sentinel License Manager的缩写,该软件的功能和FLEXLM很像,都是通过网卡加密的,
服务器端安装SERVER,客户机不用安装其它软件,使用时SERVER端启动并打开一个合法的License文件,
这个License文件是软件开发商提供的。启动后客户机才能正常运行软件,否则一运行就提示No License,
Can't not run.而且客户机上的很多程序都有这个限制,即使暴破能够成功也要改不少文件,这样的话就
很麻烦了。先不管这么多,也许比我想像相的会好的多。
017F:022116D4 MOV [EBP+04],AL
017F:022116D7 CALL 02213C47 //从这里CALL里返回的EAX为12,而从这个段里返回的值是02。
017F:022116DC ADD ESP,BYTE +20 //经分析发现如果返回值为0则不会弹出提示窗口。
017F:022116DF CMP EAX,BYTE +1A
017F:022116E2 MOV [EBP+74],EAX ********
017F:022116E5 JA NEAR 0221176D
017F:022116EB CMP EAX,BYTE +19
017F:022116EE JNC NEAR 022119A6
017F:022116F4 CMP EAX,BYTE +18
017F:022116F7 JA NEAR 022117A8
017F:022116FD XOR EDX,EDX
017F:022116FF MOV DL,[EAX+022119C4]
017F:02211705 JMP NEAR [EDX*4+022119B8]
017F:0221170C LEA EAX,[EBP+68]
017F:0221170F MOV BYTE [EBP+04],01
以上段里返回的值是02则会出错,改成0后不弹出提示窗口,程序可以继续运行下去,但运行到一半后就
出错了,“c800001 error!”这种提示不是程序事先做好的窗口,而是真正的系统出错。难道有非法地
址或数据?不会吧,先下BPX LOCKMYTASK,可以跟到出错地方,但是看起来是在读取EXE文件时出错?
因为有exeshell的字样,大部分软件都是用这个API来打开外部EXE文件的。我想EXE应该不会出错,很可
能是在前面读狗后在一个地址里放入了标志,而在程序运行之前检查了这个标志,然后转入出错部分。
我注意到上面代码中打*号的地方,因为它是把从那个CALL里返回的12放入了[EAX+47],因为12是错误的
值,会使返回的值为02,而02也是错误的。所以[EAX+47]里的值是错误的,如果程序拿来校验一定会被
查出来,下BPM XXXXXX看看程序在后面是怎么对它操作的?果然被拦下来,先看下面代码:
017F:02211AB2 PUSH BYTE +00
017F:02211AB4 CALL 02214DB2 //从这里返回的EAX=1, @@@@@@
017F:02211AB9 MOV ESI,[ESP+10]
017F:02211ABD ADD ESP,BYTE +04
017F:02211AC0 TEST EAX,EAX
017F:02211AC2 MOV [ESI+74],EAX //又把EAX放入[ESI+74],因为EAX=0才能使程序走到2211ACF
017F:02211AC5 JZ 02211ACF //这里不会跳,从而这段最后的值为02,上段程序返回02是错的。
017F:02211AC7 MOV EAX,02 //所以这里也是错的。改成xor eax,eax
017F:02211ACC POP ESI
017F:02211ACD POP ECX
017F:02211ACE RET
017F:02211ACF MOV EAX,[ESI+70] //这里有一个表,可能会返回0。
017F:02211AD2 PUSH EBX
017F:02211AD3 PUSH EDI
017F:02211AD4 PUSH BYTE +00
在@@@@@处按F8进入下面段,看看哪里会使返回值为1。
017F:02215108 CALL 02214E52
017F:0221510D CALL 02216787
017F:02215112 PUSH EAX
017F:02215113 PUSH DWORD [0225BFB4]
017F:02215119 CALL 02214E12
017F:0221511E ADD ESP,BYTE +08
017F:02215121 TEST EAX,EAX
017F:02215123 JNZ 0221512C (JUMP)
017F:02215125 MOV EAX,01 //在这里,EAX=1
017F:0221512A JMP SHORT 0221512F
017F:0221512C MOV EAX,[EAX+38]
017F:0221512F RET
017F:02215130 CALL 02214E52
017F:02215135 CALL 02216787
圣天诺的加密做的真的很好,从这个程序中我又学到了不少东西,一是出错值与程序的关系,比如12被
应用到后的校验,如果你仅仅改后面的跳转就不行了,因为错误的值被做成标志,在后面只要拿来校验就
麻烦了。所以必须分析出程序对它的操作,是比较还是拿来计算?二是系统出错不一定是程序本身的问题。
加密公司完全有能力把系统出错和加密代码返回的值结何起来,从而让系统出错,这样做的目的是让破解
者把注意力放到调试系统出错的问题上,而忽略了程序本身。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我觉得看了Laoqian的文章就应该可以入门了。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
在SentinelLM 7.1.0保护的应用程序中,找出VendorID和feature name的方法:
step 1:对应用程序用IDA进行反汇编,然后load Sentinellm的sig,然后查找_ComputeVendorCode,
找出call _ComputeVendorCode,记下该call _ComputeVendorCode的地址,
查找call _VLSrequestExt,记下call _VLSrequestExt的地址。
step 2:在S-ice中,根据step 1中找到的call _ComputeVendorCode的地址,设置断点bpx _ComputeVendorCode地址,eax中的返回值即为VendorID的值。
在S-ice中,设置断点为step 1中找到的call _VLSrequestext的地址,即 bpx call _VLSrequestext地址,在该
call前的第三个参数为存放feature name的地址,用此方法可找出应用程序中的所有的feature name。
在该call前的第四个参数为存放version的地址,用此方法可找出应用程序中的所有的feature name对应的version.
step 3:在Crack了的wlscgen.exe中找到VendorID的方法如下:
对Wlscgen.exe用IDA进行反汇编,然后load SentinalSuperPro的sig(killer_3K)和Sentinellm的sig,
然后查找_genGetNBVendorCode,
找出call _genGetNBVendorCode,记下该call _genGetNBVendorCode的地址,bpx call _genGetNBVendorCode,
返回值即为Wlscgen.exe中对应的VendorID值,还不是应用程序中对应的VendorID.
step 4: 将应用程序中的对应的VendorID应用到Wlscgen.exe中,用来产生应用程序的license文件的方法如下:
在Crack了的wlscgen.exe中,修改VendorID为step 2中找到的VendorID值,修改的方法如下:
bpx call _genGetNBVendorCode, 用T命令进入该Call,然后如下修改:
cs:42221e mov eax,VendorID----->为step 2中找到的VendorID值
cs:422223 mov [esi+650],eax
cs:422229 jmps 422248
step 5:用修改了的wlscgen.exe 来创建不同feature name的license。
对于7.2.0与7.3.0方法大同小异。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
怎么设置SLM SDK中的VendorID information的信息呢 望各位明白人提示一下
|
能力值:
( LV9,RANK:330 )
|
-
-
14 楼
有人提示看到这个,建议整理一下,入精!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
|