#include "stdafx.h"
DWORD WINAPI ThreadProc(LPVOID lpParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
CONTEXT Context;
DWORD dwThreadId;
HANDLE hThread;
hThread = CreateThread(
NULL, //默认安全属性
NULL, //默认堆栈大小
ThreadProc, //线程入口地址(执行线程的函数)
NULL, //传给函数的参数
0, //指定线程立即执行
&dwThreadId //返回线程的ID号
);
if (SuspendThread(hThread)==0xFFFFFFFF)
{
MessageBox(NULL,TEXT("麻痹!!!"),TEXT("错误i"),0);
}
else
{
MessageBox(NULL,TEXT("Suspend thread is ok.") ,TEXT(""),0);
}
Context.ContextFlags = CONTEXT_FULL;//去掉这一句就能恢复线程!!
if(GetThreadContext(hThread,&Context))
{
MessageBox(NULL,TEXT("huoquchenggong"),TEXT(""),0);
}
Context.Eip = 0x00010000;
SetThreadContext(hThread,&Context);
if (ResumeThread(hThread)==0xFFFFFFFF)
{
MessageBox(NULL,TEXT("Resume no!!"),TEXT("错误i"),0);
}
else
{
MessageBox(NULL,TEXT("Resume thread is ok!"),TEXT(""),0);
}
return 0;
}
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
int x,y ,i;
MessageBox(NULL,TEXT("ZOU DAOXIANCHENG"),TEXT(""),0);
for (i=0;i<5;i++)
{
x++;
y++;
Sleep(2000);
}
//帐号再拷贝到全局变量字符串g_strusername里。。
return 1;
}
Context.ContextFlags = CONTEXT_FULL;//去掉这一句就能恢复线程!!
加上总是恢复不了挂起的线程·也不知道为什么··只是帮Eip 的指令指针改了一下而已·
(1)加上总是恢复不了挂起的线程·也不知道为什么··?
(2)(Eip 的指令指针改了一下)为什么当线程重新恢复运行时加入的内存地址上的远程进程为什么不会终止·
这是windows核心编程上说" 当Eip跳到别的应用程序的地址上的时候·此时远程进程会异常退出"
很想知道????难道新的地址Eip指向的地址没?还是 ???
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)