一个运行后会自动销毁的程序
来源:互联网 发布:-127的源码 编辑:程序博客网 时间:2024/05/16 08:44
对话框的,里面有个按钮叫self delete,点击事件代码为:
void CSelfDeleteDlg::OnBtnselfdelete()
{
// TODO: Add your control notification handler code here
typedef int(WINAPI *PFClose)(LPVOID);
OSVERSIONINFO os_info;
os_info.dwOSVersionInfoSize =sizeof(os_info);
LPVOID pBuffer=NULL;
PFClose pClose,pDelete;
char fn[4096];
HINSTANCE hins=GetModuleHandle(NULL);
GetModuleFileName(NULL,fn,4096);
if(!GetVersionEx(&os_info)) return;
switch(os_info.dwPlatformId )
{
case VER_PLATFORM_WIN32_NT:
__try
{
while(CloseHandle((HANDLE)4));
}
__except(1)
{}
CloseHandle((HANDLE)4);
pClose=PFClose(UnmapViewOfFile);
break;
case VER_PLATFORM_WIN32_WINDOWS:
pClose=PFClose(FreeLibrary);
break;
default:
return;
}
pDelete=PFClose(DeleteFile);
pBuffer=VirtualAlloc(NULL,4096,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
_asm
{
call _delete_end
}
_asm
{
_test_close:
push hins
call [pClose]
or eax,eax
jz _test_close
lea eax,fn
push eax
call [pDelete]
or eax,eax
jz _Exit_Process
call eax
_Exit_Process:
push 0
push MEM_RELEASE
push 0
push pBuffer
push ExitProcess
push VirtualFree
ret
}
_delete_end:
_asm
{
pop ebx
push 128
push ebx
push [pBuffer]
call memcpy
jmp pBuffer
}
return;
}
里面的汇编功能逐步删除自身文件
---------------------------------------------
主要就是那段汇编,通过地址跳转和压栈,出栈来删除
- 一个运行后会自动销毁的程序
- linux如何实现开机加载完图形界面后自动运行自己写的一个程序
- 一个程序运行后的内存分配
- 一个程序员每天自动运行的程序
- 如何让android开机后自动运行自己的程序
- WinPE的制作 - 进WinPE后自动运行程序
- S60 3.0上的程序安装后启动运行和程序开机自动运行
- S60 3.0上的程序安装后启动运行和程序开机自动运行
- WebBrowser隐藏后自动销毁的BUG以及解决办法
- 程序安装完成后自动运行
- kde 登录后自动运行程序
- 让某个程序开机后自动运行
- 实现很多程序能够实现的运行过程中自动升级,升级完成后自动打开升级后的程序
- FlyMCU烧写程序结束后不自动运行程序,需要手动复位后才可以运行的解决
- 运行PhotonControl 会出现几秒钟后自动停止
- 关于采集器启动后采集程序会在后台运行的解释
- VS2008中,运行win32控制台程序,输出的DOS窗口会自动消失?
- S60 3.0上的程序安装后启动和程序开机自动运行
- 理解jpa
- SkyEye : InstallNotesCn
- 页面音频、视频播放
- [创业] 让创业者惊讶的19个真相
- c#.net如何获取本机ip
- 一个运行后会自动销毁的程序
- Ext+DWR分页的例子(保证能用)
- excel 表格实用技巧大全
- 如何让window.close()不提示
- [原创] MySQL Master/Slave数据库读写操作类 (2009/11/17 updated)
- 学习事务隔离级别
- 仿开心网好友选择功能
- PHP网站开发方案(开发新人必读)
- 通过url给as创建的flash传值