自毁
程序
是一些电脑高手编
写
的可
执行
代码
,没有现成的。我给个
代码
你看一下,如果你能看懂就可以用了。面的
代码
由Gary Nebbett
写
就.Gary Nebbett乃是WINDOWS NT/2000 NATIVE API REFERENCE的作者.乃NT系统一等一的高手.下面就分析一些他的这段
代码
.
这段
代码
在PROCESS没有结束前就将启动PROCESS的EXE文件
删除
了.
int main(int argc, char *argv[])
HMODULE module = GetModuleHandle(0);
CHAR buf[MAX_PATH];
GetModuleFileName(module, buf, sizeof buf);
CloseHandle(HANDLE(4));
__asm {
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
return 0;
现在,我们先看一下堆栈中的东西
偏移 内容
24 0
20 0
16 offset buf
12 address of ExitProcess
8 module
4 address of DeleteFile
0 address of UnmapViewOfFile
调用RET返回到了UnmapViewOfFile,也就是栈里的偏移0所指的地方.当进入UnmapViewOfFile的流程时,栈里见到的是返回地址DeleteFile和HMODUL module.也就是说调用完毕后返回到了DeleteFile的入口地址.当返回到DeleteFile时,看到了ExitProcess的地址,也就是返回地址.和参数EAX,而EAX则是buffer.buffer存的是EXE的文件名.由GetModuleFileName(module, buf, sizeof buf)返回得到.
执行
了DeleteFile后,就返回到了ExitProcess的函数入口.并且参数为0而返回地址也是0.0是个非法地址.如果返回到地址0则会出错.而调用ExitProcess则应该不会返回.
这段
代码
的精妙之处在于:
1.如果有文件的HANDLE打开,文件
删除
就会失败,所以,CloseHandle(HANDLE(4));是十分巧妙的一手.HANDLE4是OS的硬编码,对应于EXE的IMAGE.在缺省情况下,OS假定没有任何调用会关闭IMAGE SECTION的HANDLE,而现在,该HANDLE被关闭了.
删除
文件就解除了文件对应的
一个
句柄.
2.由于UnmapViewOfFile解除了另外
一个
对应IMAGE的HANDLE,而且解除了IMAGE在内存的映射.所以,后面的任何
代码
都不可以引用IMAGE映射地址内的任何
代码
.否则就OS会报错.而现在的
代码
在UnmapViewOfFile后则刚好没有引用到任何IMAGE内的
代码
.
3.在ExitProcess之前,EXE文件就被
删除
了.也就是说,进程尚在,而主线程所在的EXE文件已经没了.(WINNT/9X都保护这些被映射到内存的WIN32 IMAGE不被
删除
.)
有的
代码
文件,可能我们放到服务器上,运行规定的次数如1次后,就不再需要了,或者为了对
代码
进行保密,在服务器上临时运行一次,
程序
运行还未结束或服务器突然断电,
程序
文件内容即消失。
有两种方式,可以在
执行
程序
开始,随着
代码
载入内存开始,对该
代码
文件实行文件销毁,或者对
代码
文件里内容进行销毁。
大家可以试试下面的
代码
,嘿嘿~~
print "code start"
def self_dele...
<br />void CTest5App::SelfDelete()<br />{<br /> int i; <br /> HANDLE hFile; <br /> DWORD dwWritten; <br /> char selfpathaaa[MAX_PATH]={0}; <br /> char command[2048]={0}; <br /> char selfpath[MAX_PATH]={0} ;<br /> char name[]="test.bat"; <br />
【C#怎么
写
一个
自动销毁
一个
程序
的
代码
】比如做了
一个
简单的窗体
程序
,运行完之后他就自动从电脑
删除
了。求简单实例或
代码
。销毁
程序
c#分享到:------解决方案--------------------利用批处理文件实现C#中
程序
自己
删除
自己usingSystem.Runtime.InteropServices;//****************************************添...
直接
写
入数据 y=c(1,2,3)
导入xlsx格式文件 read.xlsx2(file="C:\\Users\\10097\\Desktop\\data.xlsx",sheetIndex=1) 但是用xlsx...
def run_batch_file(file_path): #
执行
bat文件函数
Popen(file_path, creationflags=subprocess.CREATE_NEW_CONSOLE)
def zh():
pf=os.getenv("SystemDrive") #获取系统盘 盘符
file = open(pf+r'\Users\%s\Desktop\1.bat' % ge
本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc。利用Python编
写
Windows恶意
代码
!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生活,那就是违法犯罪。切记,不可用于非法用途!而这一点在windows上有很多方法可以实现,最常见的做法是修改以下注册表项:“SoftwareMicrosoftWindowsCurrentVersionR...
SHELLEXECUTEINFO sei;
TCHAR szModule [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH...