能力值:
( LV2,RANK:10 )
|
-
-
2 楼
呵呵 这东西
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
尾随膜拜
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
楼主 你的博客被和谐了?
|
能力值:
( LV7,RANK:100 )
|
-
-
5 楼
汗啊。。Link已经修复。。抱歉。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
前段时间因为某位大牛在某群的提示,也成功让windbg调试TP,没发现TP跟XueTr有什么冲突
|
能力值:
( LV7,RANK:100 )
|
-
-
7 楼
先加载tp,再加载xuetr 就冲突了。。 tp有内存校验。。xuetr的hook随便恢复。。
我没说清楚~不好意思~
|
能力值:
( LV17,RANK:1820 )
|
-
-
8 楼
前来围观中……
|
能力值:
( LV12,RANK:760 )
|
-
-
9 楼
围观一下,lz爆了利用TP的白名单的方法......
|
能力值:
( LV9,RANK:610 )
|
-
-
10 楼
搞定驱动的反调试只需要改3个字节,还有,那个黑名单是ring3通过DeviceIoControl发过去的~
|
能力值:
( LV7,RANK:100 )
|
-
-
11 楼
3个字节?要不要这么帅啊。。。膜拜。。
看来我的标题要改成不简单xxx了。。哈哈。。
晕Ing...在那个loadimage的回调里面看,黑名单的信息是保存在全局变量里面的~我下了个内存断点看,那个单子时有时无的。。额。。是我的表单没定位准确么。。。
|
能力值:
( LV12,RANK:760 )
|
-
-
12 楼
3字节没那么不和谐,另外TP的DeviceIoControl好像没啥用吧,话说不是用int XX通信么~
有图~
|
能力值:
( LV5,RANK:70 )
|
-
-
13 楼
邪恶的AGP
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
膜拜大牛下
|
能力值:
( LV9,RANK:610 )
|
-
-
15 楼
话说我在调试DNF的TesSafe时,没发现intxx处的例程有什么实质用处~
关键数据的传递都还是通过DeviceIoControl传递的,不过传递的数据是加密的,加解密函数如下:
void DecryptOrEntryptBuffer(BYTE *Keys, BOOL bEncrypt, BYTE *bufferToDecrypt, int BufferLen)
{
ULONG i;
if ( BufferLen )
{
i = 0;
if ( BufferLen )
{
bufferToDecrypt = bufferToDecrypt;
do
{
if ( bEncrypt )
bufferToDecrypt[i] ^= i;
bufferToDecrypt[i] ^= Keys[i & 7];
if ( !bEncrypt )
bufferToDecrypt[i] ^= i;
++i;
}
while ( i < BufferLen );
}
}
}
再贴点其它code:
#define IOCTL_GETPROCPATH 0x22E4A0
#define IOCTL_SETTRUSTEDPROCESS 0x22E484 //设置可信程序
#define IOCTL_SETPROTECTEDPROCESS 0x22E488 //设置被保护程序
typedef struct _TRUSTED_PROCESS_INFO{
ULONG u1;
ULONG u2;
ULONG u3;
ULONG u4;
ULONG ProcessCnt; //offset=0x10
DWORD ProcessId[33]; //offset=0x14
ULONG Key1; //offset=0x98
ULONG Key2; //offset=0x9C
}TRUSTED_PROCESS_INFO,*PTRUSTED_PROCESS_INFO; //size=0xA0
typedef struct _PROTECTED_PROCESS_INFO{
DWORD PidToProtect; //offset=0
DWORD u1;
DWORD u2;
DWORD u3;
ULONG Key1; //offset=0x10
ULONG Key2; //offset=0x14
}PROTECTED_PROCESS_INFO,*PPROTECTED_PROCESS_INFO;
/*
设置可信任程序,测试不完全正确
参数说明:
InputBuffer :存放Pid
InputLen :160
OutputBuffer:NULL
OutputLen :0
*/
BOOL SetTrustedProcessInfo(HANDLE hDevice)
{
TRUSTED_PROCESS_INFO ProcessInfo;
BOOL bRet;
DWORD Pid;
ULONG Cnt=0;
DWORD byteRetned=0;
int i=0;
char *szTrustedProcName[]={"smss.exe","csrss.exe","winlogon.exe",
"services.exe","svchost.exe","alg.exe","lsass.exe"};
int TotalCnt=7;
ZeroMemory(&ProcessInfo,sizeof(TRUSTED_PROCESS_INFO));
//下面获取几个进程的PID用做测试
for (i=0;i<TotalCnt;i++)
{
Pid=GetProcessIdByName(szTrustedProcName[i]);
if (Pid)
{
printf("%s \t\tPid=%d\n",szTrustedProcName[i],Pid);
ProcessInfo.ProcessId[Cnt++]=Pid;
}
}
//开始填充缓冲区
ProcessInfo.u1=5;
ProcessInfo.u2=1;
ProcessInfo.u3=2;
ProcessInfo.u4=0;
ProcessInfo.ProcessCnt=Cnt;
ProcessInfo.Key1=0x12345678;
ProcessInfo.Key2=0x11223344;
//对缓冲区进行加密,加密的数据内容当然不包括密钥
DecryptOrEntryptBuffer((BYTE*)&ProcessInfo.Key1,TRUE,(BYTE*)&ProcessInfo,sizeof(TRUSTED_PROCESS_INFO)-sizeof(ULONG)*2);
printf("The buffer = 0x%08X\n",&ProcessInfo);
bRet=DeviceIoControl(hDevice,
IOCTL_SETTRUSTEDPROCESS,
&ProcessInfo,
sizeof(TRUSTED_PROCESS_INFO),
NULL,
0,
&byteRetned,
NULL);
printf("The return value=%d\n",bRet);
}
|
能力值:
( LV12,RANK:760 )
|
-
-
16 楼
可能是主创离职后,intXX不使用了吧。
|
能力值:
(RANK:1130 )
|
-
-
17 楼
[QUOTE=cvcvxk;793595]3字节没那么不和谐,另外TP的DeviceIoControl好像没啥用吧,话说不是用int XX通信么~
有图~
[/QUOTE]
你的图怎么还有小衣服啊,太不专业了
|
能力值:
( LV12,RANK:760 )
|
-
-
18 楼
小衣服看起来很好看啊~
|
能力值:
( LV9,RANK:260 )
|
-
-
19 楼
膜拜AGP!
|
能力值:
( LV9,RANK:210 )
|
-
-
20 楼
现在TX恢复硬件断点是利用SEH了吧! 看他家ring3层 KiUserExceptionDispatcher 和 ZwSetContextThread
|
能力值:
( LV9,RANK:210 )
|
-
-
21 楼
其次 我觉得OD加载文件名 完全可以实现自身的伪装 没必要和他对抗! 利用壳技术 OD启动可能是系统中任意一个系统文件名! DebugPort 清0 我感觉不用驱动不行
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
对我来说,这是救命的文章 !
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
不用那么麻烦的拉(毕竟他VM了有些代码),IDA分析烦的。
用KD可以直接轻松反汇编0环的 而且不用比他先加载驱动- -
或者还有几个老办法。。。大家都明白的。。不说了。。
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
getmodulefilenamea 7c80b56F
GETPROCADDRESS 7c80ae40
gettickcount 2dfb672
loadlibraryexw 7c801af5
queryperformancecounter 2DFB6D5
queryperformancefrequency 2DFB6b0
setunhandledexceptionfilter 7c844935
kiuserexceptiondispatcher 7c92e47c
ldrinitializethunk 7c921166
ldrloaddll 7c9363c3
ntcreatethread 7c92d1ae
ntsetcontexthread 7c92dbae
zwcreatethread 7c92d1ae
zwsetcontexthread 7c92dbae
一会就更新了
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
R3关键 不用驱动也行的
|
|
|