![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 15:08 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 劫持被编译成exe文件的批处理源码 |
| 可打印版本 1,110 / 1 |
| 第1楼 zcnvnv | 发表于 2009-10-07 13:38 |
| 初级用户 发帖 36 积分 114 | |
|
劫持被编译成exe文件的批处理源码 昨天偶然想到的,在我的bat母校分享给大家,如果有不对的地方可以来我网志留言.
本文来自:http://suprole.cn/display_article.asp?type=Article&id=69 如果你有一个批处理程序,想要得到它的源码,但作者将其编译为exe文件,怎么办? 这个小东西就是专门为此打造的了. 用法: 1.打开X:\WINDOWS\system32,将cmd.exe备份到其他地方,这里值得注意的是,cmd.exe备份的时候最好随便重命名一下,不然有可能不起作用. 2.把这个小东西改名为cmd.exe,放到X:\WINDOWS\system32,说白了就是把这个程序替换掉cmd.exe. 3.运行被编译成exe文件的批处理程序. 4.然后在批处理程序所在的目录里会出现一个"asdf.txt",打开它. 5.如果asdf.txt的内容不是你想要的源码,而是像"/c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\****.bat"这样的,C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\****.bat就是这个批处理的源码文件了(有可能是隐藏文件) 7.弄完后把备份的cmd.exe恢复回去. 原理: 批处理被编译成exe,最终还是要调用cmd.exe,把源码作为参数传递给它来运行,或者把源码输出到文件,然后"/c 文件名"来运行,这个小工具就是把它接收到的参数告诉你,源码自然就呈现在你眼前了. 本程序源码(C\C++): #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { HANDLE hFile; DWORD dwSize; hFile=CreateFile("asdf.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,0,NULL); WriteFile(hFile,lpCmdLine,strlen(lpCmdLine),&dwSize,NULL); CloseHandle(hFile); return 0; } 工具下载:http://SupRole.cn/Soft/asdf.rar |
|
| 第2楼 defanive | 发表于 2009-10-07 14:27 |
| 初级用户 发帖 62 积分 111 | |
|
使用VB写这个程序不更简单?已经有人写过了。。。
If Trim(Command) <> "" Then MsgBox Command Else Exit Sub End If |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |