![](/icons/36042de.gif)
![](/icons/36042chengxu.gif)
![](/icons/36042de.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042de.gif)
![](/icons/36042yi.gif)
![](/icons/36042yi.gif)
![](/icons/36042dou2.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042de.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042yi.gif)
![](/icons/36042dou2.gif)
要想利用多进程
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042dou.gif)
![](/icons/36042yi.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042dou2.gif)
在谈vcasm
![](/icons/36042de.gif)
![](/icons/36042de.gif)
![](/icons/36042hanshu.gif)
![](/icons/36042dou2.gif)
CreateFileMapping
![](/icons/36042hanshu.gif)
![](/icons/36042yi.gif)
![](/icons/36042dou.gif)
![](/icons/36042hanshu.gif)
HANDLE CreateFileMapping(
HANDLE hFile, // 映射文件句柄
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
// 安全属性
DWORD flProtect, // 对象
![](/icons/36042de.gif)
DWORD dwMaximumSizeHigh, // 对象大小高32位
DWORD dwMaximumSizeLow, //对象大小第32位e
LPCTSTR lpName // 文件映射对象名
);
当hFile=(HANDLE)-1时得到
![](/icons/36042de.gif)
![](/icons/36042de.gif)
![](/icons/36042dou.gif)
![](/icons/36042yi.gif)
![](/icons/36042de.gif)
![](/icons/36042yi.gif)
![](/icons/36042de.gif)
![](/icons/36042dou2.gif)
![](/icons/36042dou2.gif)
![](/icons/36042dou.gif)
![](/icons/36042dou2.gif)
![](/icons/36042yi.gif)
![](/icons/36042hanshu.gif)
![](/icons/36042dou2.gif)
DWORD GetLastError(VOID)
当返回值等于ERROR_ALREADY_EXISTS时则介绍说明这个对象已经存在了
![](/icons/36042dou2.gif)
好了
![](/icons/36042dou.gif)
![](/icons/36042chengxu.gif)
![](/icons/36042yi.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042chengxu.gif)
![](/icons/36042dou.gif)
![](/icons/36042chengxu.gif)
![](/icons/36042dou.gif)
![](/icons/36042yi.gif)
![](/icons/36042de.gif)
![](/icons/36042dou.gif)
![](/icons/36042de.gif)
![](/icons/36042yi.gif)
![](/icons/36042dou2.gif)
![](/icons/36042de.gif)
有兴趣自己逆向
![](/icons/36042yi.gif)
![](/icons/36042dou2.gif)
GetModuleFileName(0,lpFilename,0x200); //取得文件名
然后将文件名加以变动作为mapview
![](/icons/36042de.gif)
for(i=0;i<0x200;i
![](/icons/36042jiajia.gif)
{
// 将文件名中
![](/icons/36042de.gif)
![](/icons/36042if.gif)
![](/icons/36042dd.gif)
}
mHandle=CreateFileMapping((HANDLE)-1,0,PAGE_READWRITE,0,0x400,lpFilename);
GetLastError
![](/icons/36042kh.gif)
![](/icons/36042de.gif)
![](/icons/36042de.gif)
![](/icons/36042if.gif)
![](/icons/36042kh.gif)
{
mapview=MapViewOfFile(mHandle,FILE_MAP_ALL_ACCESS,0,0,0); //提交物理内存
sum =(char*)((char*)mapview+0x3ff);
*sum=0; //
![](/icons/36042chushi.gif)
}
![](/icons/36042else.gif)
{
mapview=MapViewOfFile(mHandle,FILE_MAP_ALL_ACCESS,0,0,0); //提交物理内存
sum =(char*)((char*)mapview+0x3ff);
*sum
![](/icons/36042jiadeng.gif)
}
![](/icons/36042if.gif)
{
MessageBox(0,"yes","ok",0);
UnmapViewOfFile(mapview); 打开
![](/icons/36042de.gif)
CloseHandle(mHandle); handle也可以关掉了
}
![](/icons/36042else.gif)
{
还没到 5次,再开
![](/icons/36042yi.gif)
CreateProcess(0,GetCommandLine
![](/icons/36042kh.gif)
}
Sleep(50); 将执行权交出去,休息
![](/icons/36042yi.gif)
ExitProcess(0); 其他
![](/icons/36042de.gif)
vc
![](/icons/36042jiajia.gif)
![](/icons/36042de.gif)
#
![](/icons/36042include.gif)
![](/icons/36042int.gif)
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
![](/icons/36042int.gif)
{
DWORD i;
LPVOID mapview;
HANDLE mHandle;
PCHAR sum;
LPTSTR lpFilename=(LPTSTR)malloc(0x200);
STARTUPINFO StartupInfo;
StartupInfo.cb=
![](/icons/36042sizeof.gif)
PROCESS_INFORMATION ProcessInformation;
GetModuleFileName(0,lpFilename,0x200); //取得文件名
GetStartupInfo(&StartupInfo); //填写StartupInfo结构
for(i=0;i<0x200;i
![](/icons/36042jiajia.gif)
{
// 将文件名中
![](/icons/36042de.gif)
![](/icons/36042if.gif)
![](/icons/36042dd.gif)
}
mHandle=CreateFileMapping((HANDLE)-1,0,PAGE_READWRITE,0,0x400,lpFilename);
![](/icons/36042if.gif)
![](/icons/36042kh.gif)
{
mapview=MapViewOfFile(mHandle,FILE_MAP_ALL_ACCESS,0,0,0); //提交物理内存
sum =(char*)((char*)mapview+0x3ff);
*sum=0; //
![](/icons/36042chushi.gif)
}
![](/icons/36042else.gif)
{
mapview=MapViewOfFile(mHandle,FILE_MAP_ALL_ACCESS,0,0,0); //提交物理内存
sum =(char*)((char*)mapview+0x3ff);
*sum
![](/icons/36042jiadeng.gif)
}
![](/icons/36042if.gif)
{
MessageBox(0,"yes","ok",0);
UnmapViewOfFile(mapview);
CloseHandle(mHandle);
}
![](/icons/36042else.gif)
{
CreateProcess(0,GetCommandLine
![](/icons/36042kh.gif)
}
Sleep(0);
ExitProcess(0);
![](/icons/36042return.gif)
}
![](/icons/36042yi.gif)
![](/icons/36042de.gif)
![](/icons/36042yi.gif)
最新评论