CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

#######更新文件的问题########

楼主abrams(F-15E StrikeEagle)2003-03-03 20:44:37 在 其他开发语言 / 汇编语言 提问

曾经看到过一段汇编的删除程序自身的代码,  
  我对汇编不是很懂,概念比较模糊,我只是想问,  
  如果我不仅仅要删除,还是要把另一个文件rename到本来存在的这个文件名(也就是正运行着的自身)  
  怎么做??另一个程序就在同个目录,只是未更新时文件名时不同的,别误会,我不是要做病毒,而是做一个服务自动更新的软件,谢谢  
  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    
                ret    
        }    
        return   0;    
  }  
  问题点数:0、回复次数:3Top

1 楼zivey(爬山虎)回复于 2003-03-03 23:33:46 得分 0

如果要程序删除自身一般的程序当然不行,会产生系统保护错误。但汇编程序可以驻留内存释放系统文件据柄,这时才可以删除。如果要修改文件本身,你只要在系统的保护模式下直接写硬盘相应的字段就可以了。Top

2 楼zivey(爬山虎)回复于 2003-03-03 23:34:22 得分 0

祝你成功···!!!Top

3 楼abrams(F-15E StrikeEagle)回复于 2003-03-03 23:35:09 得分 0

我主要想如何更新自己,应该不太难的,真是我对汇编不是很懂Top

相关问题

  • 关于更新xml文件
  • 如何更新 mshtml.h 文件
  • 在interdev中文件更新的问题?
  • 关于文件更新日期(急)
  • 不能更新App.config文件,急~~
  • 关于文件更新的问题
  • 怎么更新二进制文件?
  • 怎样更新AVI文件的fps?
  • 请问该如何更新RSS文件?
  • 为什么 文件不能更新

关键词

  • 文件
  • 汇编
  • 系统
  • 更新
  • 删除
  • 程序
  • push
  • buf
  • module

得分解答快速导航

  • 帖主:abrams

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo