相关文章推荐
逆袭的热带鱼  ·  The T cell receptor ...·  1 年前    · 
文质彬彬的红豆  ·  [译]bootstrap-select ...·  1 年前    · 
void	nt_sleep(DWORD milliseconds)
	static NTSTATUS(__stdcall *NtDelayExecution)(BOOL Alertable, PLARGE_INTEGER DelayInterval) = (NTSTATUS(__stdcall*)(BOOL, PLARGE_INTEGER)) GetProcAddress(GetModuleHandleA(("ntdll.dll")), ("NtDelayExecution"));
	static NTSTATUS(__stdcall *ZwSetTimerResolution)(IN ULONG RequestedResolution, IN BOOLEAN Set, OUT PULONG ActualResolution) = (NTSTATUS(__stdcall*)(ULONG, BOOLEAN, PULONG)) GetProcAddress(GetModuleHandleA(("ntdll.dll")), ("ZwSetTimerResolution"));
	static bool once = true;
	printf("ZwSetTimerResolution %p\n",ZwSetTimerResolution);
    if (once && ZwSetTimerResolution!=NULL) {
        ULONG actualResolution;
        ZwSetTimerResolution(1, true, &actualResolution);
        once = false;
	LARGE_INTEGER interval;
    interval.QuadPart = -1 * (int)(milliseconds * 10000);
	printf("NtDelayExecution %p\n",NtDelayExecution);
	if(NtDelayExecution!=NULL)
		NtDelayExecution(false, &interval);
                    void	nt_sleep(DWORD milliseconds){	static NTSTATUS(__stdcall *NtDelayExecution)(BOOL Alertable, PLARGE_INTEGER DelayInterval) = (NTSTATUS(__stdcall*)(BOOL, PLARGE_INTEGER)) GetProcAddress(GetModuleHandleA(("ntdll.dll")), ("NtDelayExecution"));	static NT
				
VC里面快速调用Nt系列函数示例方法,以NtTerminateProcess结束自己为例 当初研究的目的也只是为了一个稳定通用的ring3 inline hook bypass funaddr + 5的方法除外,如果你还有其他方法或思路,欢迎交流指导!
Windows 引导过程 Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化。此初始化工作是在系统引导时完成的。当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即获得控制权,而是BIOS 代码首先获得控制,它执行必要的硬件检测工作,并允许用户通过一些功能键来配置当前系统中的硬件设置,甚至诊断硬件问题,然后才将控制权交给操作系统。 1.1 内核加载 在windows使用带上头文件#include <windows.h>; 在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include <unistd.h>;  在windows中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说wind
typedef LONG(__stdcall *__PFN_NtDelayExecution)(BOOLEAN Alertable, PLARGE_INTEGER Interval); void DSSleep(DWORD dwMs) static __PFN_NtDelayExecution fn = 0; static bool bInited = false         83   4B 0007C008 NlsAnsiCodePage          84   4C 0007C010 NlsMbCodePageTag          85   4D 0007C018 NlsMbOemCodePageTag          86   ...
当你分析一个dump文件的时候,调试里面最艺术的地方就是知道哪些东西是可以忽略的,而哪些是你想要的东西。 特别是在你分析一个程序停止响应(hang)的bug时,了解这些常见线程对你非常有帮助,浏览线程各堆栈列表的时候,你可以知道不是这个线程出问题了,也不是那个线程………… 因为大部分时间我是跟asp.net打交道,所以我将通过分析w3wp.exe(IIS 6里面用来执行asp.net页面代码的进程...
public class SleepExample { public static void main(String[] args) { System.out.println("程序开始执行"); try { Thread.sleep(3000); // 暂停 3 秒钟 } catch (InterruptedException e) { e.printStackTrace(); System.out.println("程序继续执行"); 在上面的示例中,我们使用了 Thread 类的 sleep() 方法来暂停程序的执行。在 try-catch 块中,我们将线程暂停了 3 秒钟,然后程序继续执行。