能力值:
( LV12,RANK:770 )
|
-
-
2 楼
衰...NB
硬件复制不知道有人解....
|
能力值:
( LV12,RANK:770 )
|
-
-
3 楼
牛人...
狗是越忽悠越热...
|
能力值:
( LV12,RANK:770 )
|
-
-
4 楼
脱的狗越涮就好吃...
|
能力值:
( LV12,RANK:410 )
|
-
-
5 楼
这种方法对于动态使用Sense4.DLL的软件有用,可对于静态连接狗的.LIB的软件就无能为力了,因为静态使用狗的软件不会去调用Sense4.DLL。
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
最初由 Spring.W 发布 这种方法对于动态使用Sense4.DLL的软件有用,可对于静态连接狗的.LIB的软件就无能为力了,因为静态使用狗的软件不会去调用Sense4.DLL。
静态的一样可以!不过麻烦点罢了!!
|
能力值:
( LV9,RANK:1010 )
|
-
-
7 楼
经验啊,学习了.
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
虽然讲得不太详细,便总的思想都出来了,有心学习的朋友可走不少弯路。
支持
|
能力值:
( LV8,RANK:130 )
|
-
-
9 楼
支持一下!!!!!!
|
能力值:
( LV9,RANK:330 )
|
-
-
10 楼
首先你既然要想做一个cracker,至少要先做好一个coder吧(当然progamer要求有点高)
这是破解的最低要求,也是最高境界吧!惭愧,离coder还差很远呢....
|
能力值:
( LV12,RANK:660 )
|
-
-
11 楼
调试+逆向+编码 == 楼主强人!
|
能力值:
( LV12,RANK:770 )
|
-
-
12 楼
最初由 Spring.W 发布 这种方法对于动态使用Sense4.DLL的软件有用,可对于静态连接狗的.LIB的软件就无能为力了,因为静态使用狗的软件不会去调用Sense4.DLL。
FK硬件的说,,牛....
...
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
最初由 Spring.W 发布 这种方法对于动态使用Sense4.DLL的软件有用,可对于静态连接狗的.LIB的软件就无能为力了,因为静态使用狗的软件不会去调用Sense4.DLL。
对于关于.lib的我没有研究过(没有接触到此类加密的),所以是否适用,在此不敢妄说。但是我想总是有办法的。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我也这样解过一个sense4的狗。
深有体会 , 最难的一部其实就是分析狗中的数据
推出算法.
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
深思的 读狗函数一般很有规率
总是先调用一个函数 S4VerifyPin 效验一下 用户PIN 码。
DWORD WINAPI S4VerifyPin(
IN SENSE4_CONTEXT *s4Ctx,
IN LPBYTE lpPin,
IN DWORD dwPinLen,
IN DWORD dwPinType
);
此时dwPinType 肯定是 S4_USER_PIN 0x000000a1
那么 dwPinLen 肯定是 8
隔不远有一个函数 调用
DWORD WINAPI S4Execute(
IN SENSE4_CONTEXT * s4Ctx,
IN LPCSTR lpszFileID,
IN LPVOID lpInBuffer,
IN DWORD dwInbufferSize,
OUT LPVOID lpOutBuffer,
IN DWORD dwOutBufferSize,
OUT LPDWORD lpBytesReturned
);的调用
其中第一个参数与上面的函数的第一个参数一样。
近过跟踪 很快就可以找到所有读狗的地址
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
问一个很菜的问题,怎么得到log文件???
|
能力值:
( LV9,RANK:170 )
|
-
-
17 楼
支持一下!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
学习中 ` 薛了 ~
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
水平低 不明白 继续学习
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
有收获,我是菜鸟,我学习一下!
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
学习!学习!学习!在学习
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
学习中、、、、、、、、!
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
自已写一个狗的硬件驱动。从这里截获所有的I/O。
sense4的usb驱动很简单,只有4个ioctl 命令。
|
能力值:
( LV4,RANK:50 )
|
-
-
24 楼
最初由 haibin1013 发布 深思的 读狗函数一般很有规率 总是先调用一个函数 S4VerifyPin 效验一下 用户PIN 码。 DWORD WINAPI S4VerifyPin( IN SENSE4_CONTEXT *s4Ctx, IN LPBYTE lpPin, ........ 刚看到这个关于静态库lib调用加密的回帖。我大致说一下我的解决方案
不管对动态库dll还是静态库lib的加密调用都必须调用S4函数
S4Verfypin是校验用户口令。
S4Execute是执行锁内可执行文件函数。
在这两个函数调用前一般还应该有一个S4ChangeDIR(改变目录)函数
其实找到这些函数的调用地址可以说都非常简单,最重要的也不是得到这些函数的调用地址,而应该是S4Execute函数的指针输入参数和输出指针所有元素值。对于动态dll调用改写dll即可(我在上文提到过),对于静态Lib调用可以采用dll注入、APIhook等方式来拦截和打印读锁日志。
如何dll注入,APIhook这个我一句话说不清楚,大家可以google参考一些技术文档
上面我只说了做模拟的大概思想,其实可以做模拟,就能做复制。模拟只是把狗内算法复原形成硬盘文件和数据供软件调用。你只要把这些复原的算法重新写到新狗里就是复制锁了。因为这里有一个很好的锁‘bug’可以利用:开发商指令与被加密软件无关,而用户指令可以随便修改(改成对应的S4VerifyPin函数的就行了)。
|
|
|