zoukankan      html  css  js  c++  java
  • 一个删除自身的程序源代码

    #include #include /* 1.如果有文件的HANDLE打开,文件删除就会失败,所以, CloseHandle(HANDLE(4));是十分巧妙的一手.HANDLE4是OS的 硬编码,对应于EXE的IMAGE.在缺省情况下,OS假定没有任何调 用会关闭IMAGE SECTION的HANDLE,而现在,该HANDLE被关闭了. 删除文件就解除了文件对应的一个句柄. 2.由于UnmapViewOfFile解除了另外一个对应IMAGE的HANDLE, 而且解除了IMAGE在内存的映射.所以,后面的任何代码都不可 以引用IMAGE映射地址内的任何代码.否则就OS会报错.而现在 的代码在UnmapViewOfFile后则刚好没有引用到任何IMAGE内的代码. */ main() { printf("这是一个删除自身的程序\n"); HMODULE hm = GetModuleHandle(0); char buf[MAX_PATH]; GetModuleFileName(hm, buf, sizeof(buf)); CloseHandle((HANDLE)4); __asm { lea eax, buf push 0 push 0 push eax push ExitProcess push hm push DeleteFile push UnmapViewOfFile ret } return 0; } 
  • 相关阅读:
    工作中会用到的知识点(二)
    canvas 绘制图形
    CSS 清除浮动的方法
    倒计时
    JavaScript 对象
    推荐一款分页插件
    HTML5 Video标签
    idea lua插件设置Lua SDK
    Springboot访问 图片image css js资源文件
    nginx基本配置与参数说明
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327778.html
Copyright © 2011-2022 走看看