![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 19:46 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何把EXE文件的首行内容和尾行交换 |
| 可打印版本 807 / 5 |
| 第1楼 luckboy45 | 发表于 2007-12-08 17:41 |
| 中级用户 发帖 212 积分 487 | |
|
如何把EXE文件的首行内容和尾行交换 我是这么想的,先把D盘里面的所有.EXE修改为.TXT,然后把TXT格式后的EXE首行内容与尾行互相交换,请问这个能实现么?
我这里有一段交换的代码,是JM整理的,自己看的不是很明白,希望高手能帮忙写个事例.. 比如:我要将D盘的123.EXE修改为123.TXT,然后在交换首尾行的内容. 决非用与不良企图,纯粹为了研究.希望大家能帮忙满足下!~ @echo off :: 目的:把首行和尾行互换 :: 思路: :: 提取第一行和最后一行内容(若首行和最后一行是空行,则提取到的是非空的第一行和非空的最后一行内容), :: 然后在新文本的首行写入提取到的最后一行,用 findstr 语句过滤掉原文本的第一行和最后一行,在最后一行 :: 之后添加提取到的第一行。 :: 因为 findstr 处理最后一行有条件限制,所以先在最后一行之后生成一个空行,以保证提取的准确性 :: 注意:请保证test.txt中没有敏感字符,没有内容重复的行,并且首行不能为空 :: code by jm 2006-11-5 CMD@XP :: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=24563 copy test.txt test.bak>nul echo.>>test.txt set num=0 setlocal enabledelayedexpansion for /f "delims=" %%i in (test.txt) do ( set str=%%i set /a num+=1 if !num! equ 1 set var=%%i ) >test_.txt echo.%str% findstr /b /e /v /c:"%str%" /c:"%var%" test.txt>>test_.txt >>test_.txt echo.%var% move test.bak test.txt start test_.txt goto :eof @echo off :: 可以处理首行为空、行内容重复的情况, :: 注意:因为 findstr /n 统计行数的时候,会忽略最后一个空行 :: 所以,若在最后有空行的话,请保证空行的个数大于1 findstr /n .* test.txt>tmp1.txt for /f "tokens=1* delims=:" %%i in (tmp1.txt) do ( if %%i equ 1 set str=%%j set line=%%i&set var=%%j ) >tmp2.txt echo %line%:%var% findstr /b /v /c:"1:" /c:"%line%:" tmp1.txt>>tmp2.txt echo 1:%str%>>tmp2.txt echo.>>tmp2.txt cd.>result.txt for /f "tokens=1* delims=:" %%i in (tmp2.txt) do >>result.txt echo.%%j del /q tmp1.txt tmp2.txt start result.txt |
|
| 第2楼 huahua0919 | 发表于 2007-12-08 17:48 |
| 银牌会员 发帖 780 积分 1,608 | |
|
你不会想二次"熊猫烧香"吧.大哥!
|
|
| 第3楼 dikex | 发表于 2007-12-08 19:32 |
| 高级用户 发帖 366 积分 788 | |
|
exe文件里面有大量非ASCII字符,而且行对于exe文件的意义和对文本文件的意义不同,你用批处理修改后将无法还原。
P.S.你直接用记事本打开一个exe文件然后保存,那这个文件也就报废了 [ Last edited by dikex on 2007-12-8 at 07:34 PM ] |
|
| 第4楼 fastslz | 发表于 2007-12-08 21:27 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
3楼正解
真佩服楼主这种怪想法,能是能但绝对不是你说的方法。这种技术太邪门还是不说的好。 |
|
| 第5楼 halulove | 发表于 2007-12-08 22:41 |
| 初级用户 发帖 19 积分 43 | |
|
不知道你为什么要改?
不过建议看看PE文件格式! |
|
| 第6楼 luckboy45 | 发表于 2007-12-09 17:21 |
| 中级用户 发帖 212 积分 487 | |
|
我是想写个病毒演示程序罢了,既然无法实现,只能全部感染了....
因为我写病毒演示都是留两条后路,方便朋友测试玩的 既然这个修改的办法没办法实现,只有全部备份到指定文件夹后,全部感染了...当然,这个写卸载是没办法写的了,因为无法判断原文件具体的位置,所以无法自动还原了...虽然如此,但还是感谢各位朋友的赏脸看我帖子,谢谢了!~ |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |