一段欺骗性代码和一个自删除程序的学习
来源:互联网 发布:星际战甲 udp端口4950 编辑:程序博客网 时间:2024/05/16 08:18
今天突然看到下面的一段代码:
PUSH 0
CALL @1
DB 'title',0
@1: CALL @2
DB 'message',0
@2: PUSH 0
CALL MessageBoxA
CALL @1
DB 'title',0
@1: CALL @2
DB 'message',0
@2: PUSH 0
CALL MessageBoxA
明地一看也没有反应过来,不知道咋回事,且猛地想到了以前看过的一个自删除程序,当时也没理解是咋回事,今天又把以前发的那个贴子拿出来看了一下,终于明白了是怎么回事了。
先说这段欺骗代码,可以欺骗一些反汇编软件 ,使其逆成比较乱的代码,其实这段代码就是完成了如下的功能:
MessageBox(0,"message","title",0);
只是弹出一个对话框。call @1之后,将db "title",0的地址压入栈中,call @2后,将db "message",0的地址压入栈中,再执行到call MessageBox之前,栈的内容如下:
0
addr of "message" ;在执行完call @2后压入的返回地址
addr of "title" ;执行完call @1后压入的返回地址
0
这样,就可以正常实现调用该函数了
下面再说一下这段自删除程序(因为在XP下不能用)
代码如下:
#include "windows.h"
int main(int argc, char *argv[])
...{
char buf[MAX_PATH];
HMODULE module;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);
__asm
...{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
int main(int argc, char *argv[])
...{
char buf[MAX_PATH];
HMODULE module;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);
__asm
...{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
先说一下CloseHandle((HANDLE)4),这句话就是关闭了exe本身的image句柄。
后面的汇编代码是核心,实现了先执行了invoke UnmapViewOfFile,module
因为当函数调用的时候,栈中的情况是这样的
……
localvar2
localvar1
返回地址
arg1
arg2
arg3
……
localvar2
localvar1
返回地址
arg1
arg2
arg3
……
addr of DeleteFile
arg
arg
- 一段欺骗性代码和一个自删除程序的学习
- 一段不错的DLL自删除代码
- 一段通用的自删除代码
- 一段删除文件和文件夹的代码
- 程序自删除代码
- 批量删除的一段代码。
- 程序自删除VC++代码
- 一段代码优化的程序(Sherlock和询问)
- 程序的自删除
- 一段js代码模仿实现sina广告条--转自griefforyou的程序人生
- 一段学习反射的代码
- 值得学习的一段代码
- 一段学习CSS的代码
- 一段删除CListCtl多行的代码
- windows一段添加、删除注册表的bat代码,用于系统启动时打开某个程序
- 2.7 请写出一段Python代码实现删除一个list里面的重复元素
- share一段采集论坛程序的代码
- 一段输出自身代码的好玩程序
- Flex应用展示之ROB PICKER
- JSP中文解决方法
- Data Mining资源大全
- 配置Tomcat的连接池
- YAHOO工具库
- 一段欺骗性代码和一个自删除程序的学习
- C++虚函数表
- Windows下PHP5.2.4+Apache2.2.4+MySql5.0.27完整配置
- Goo3D 3d图片制作网站
- 锁定提示
- 配置支持Amfphp1.9的Web应用
- AS3连接AMFPHP1.9 HELLOWORLD
- 基于开源BI平台Openi的数据仓库系统的设计开发
- Rich Internet Applications 的技术选项