能力值:
( LV2,RANK:10 )
|
-
-
2 楼
并不是所有区域都可以写的 还有就是写之前最好调用 virtualprotect 进行内存保护方式设置
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
神奇的是 我自己的机器上可以写, 但是别的机器上就不行, 恩,我用virtualprotect 试试
|
能力值:
( LV5,RANK:66 )
|
-
-
4 楼
没有什么神奇的,看你要写入的内存是什么情况了。猜测你是要Hook系统Api?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
用GetLastError看看错误代码啊,是在所有的其他机器都不成功还是某一台?若某一台的话看看NTOpenProcess是否被HOOK了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
主动防御引起的问题,偶之前遇到过,解决方法还是提权,
估计你提权方法有问题哈!
偶是采用OpenProcessToken()
LookupPrivilegeValue()
AdjustTokenPrivileges()三个函数来提权
要修改一个进程的访问令牌,首先要获得进程访问令牌的句柄,这可以通过OpenProcessToken得到,
函数的原型如下:
BOOL OpenProcessToken( __in HANDLE ProcessHandle, //要修改访问权限的进程句柄
__in DWORD DesiredAccess, //指定你要进行的操作类型
__out PHANDLE TokenHandle //返回的访问令牌指针 );
第一参数是要修改访问权限的进程句柄;
第三个参数就是返回的访问令牌指针;
第二个参数指定你要进行的操作类型,如要修改访问令牌的特权,
我们要指定第二个参数为TOKEN_ADJUST_PRIVILEGES(其它一些参数可参考Platform SDK)。
通过这个函数我们就可以得到当前进程的访问令牌的句柄(指定函数的第一个参数为GetCurrentProcess()就可以了)。
接着我们可以调用AdjustTokenPrivileges对这个访问令牌进行修改。
AdjustTokenPrivileges的原型如下:
BOOL AdjustTokenPrivileges( HANDLE TokenHandle, // handle to token BOOL DisableAllPrivileges, // disabling option
PTOKEN_PRIVILEGES NewState, // privilege information
DWORD BufferLength, // size of buffer
PTOKEN_PRIVILEGES PreviousState, // original state buffer
PDWORD ReturnLength // required buffer size );
第一个参数是访问令牌的句柄;
第二个参数决定是进行权限修改还是除能(Disable)所有权限;
第三个参数指明要修改的权限,是一个指向TOKEN_PRIVILEGES结构的指针,该结构包含一个数组,数据组的每个项指明了权限的类型和要进行的操作;
第四个参数是结构PreviousState的长度,如果PreviousState为空,该参数应为NULL;
第五个参数也是一个指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息,可空;
最后一个参数为实际PreviousState结构返回的大小。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
是不是操作系统不同。
|
|
|