找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23064|回复: 9

[系统相关] 【已解决】[三方软件隐藏于BAT中去]

[复制链接]
发表于 2023-8-20 12:51:51 | 显示全部楼层 |阅读模式
本帖最后由 locoman 于 2023-8-21 14:04 编辑

【三方软件隐藏于BAT中去】

bat文件很多时候需要使用到第三方的小工具软件协助支持。

但是,大家肯定都是不愿意让自己的bat文件在外面露一个小尾巴的,
一是,分发不便;二是,暴露在外的三方软件易丢失转移或被替换;三是,显示有些不专业。

我看见有些达人是将第三方软件直接用代码形式隐匿到自己的bat文件形成一体,我也很想学习掌握这种技能,在此真心求学,望达人们不吝赐教详细指导,先谢谢了!


由于具体不知道搞法和步骤,我先提出我的几个疑问,望能释疑以助我真正的深刻理解掌握:

【先请问】:
1. 是用什么工具先将哪些可执行的二进制文件变成bat文件中代码的?
2. 是不是所有可执行的二进制文件都能隐匿于bat文件中?
3. 不同的可执行的二进制文件在实操中需要注意哪些不同?


比如,我放出来供大家测试的两个文件:
https://cnyunfei.lanzouw.com/b01f9by5g
密码:e9w7

第1个文件,DumpEDID.exe
这个纯粹的无界面的DOS文件,不管是直接执行或是带参数执行都只有CMD的黑窗口出来

第2个文件,securitysoftview.exe
这个就是既可以是有WINDOWS界面执行,也可以是CMD的黑窗口执行。
a. 直接不带参数执行文件,就会弹出WINDOWS界面;
b. 带参数执行文件(securitysoftview /stext <Filename> ),就啥也不弹直接输出txt结果文件了。显然,这正是编写BAT文件最想要的形式。

【再请教】:
针对两个不同的测试文件,请教大佬们分别制作一个隐匿进bat文件的详细教程,真正的传道受业解惑,让小白真正掌握这一个技能!
谢谢了!!


http://bbs.bathome.net/thread-67084-1-1.html ,8楼的@yakeyun朋友,就是将DumpEDID.exe隐匿进bat文件的,文件能释放出来,但不知为啥不能正常执行。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-8-20 13:40:10 | 显示全部楼层
回复 1# locoman


XP那个年代,大家通常使用debug命令
http://bbs.bathome.net/thread-4435-1-1.html

Win7之后的系统,可以使用certutil命令
http://bbs.bathome.net/thread-41604-1-1.html
 楼主| 发表于 2023-8-20 18:19:21 | 显示全部楼层
请问:
能不能在编码时直接输出到剪贴板中去,而不是保存为txt文件??
我这样试了未能成功:certutil -encode "securitysoftview.exe" | clip
发表于 2023-8-21 12:07:47 | 显示全部楼层
管理员真的是辛苦了,每每都及时回复小白提问。学习你的技术,学习你的态度
 楼主| 发表于 2023-8-21 14:06:07 | 显示全部楼层
谢谢管理员的指点!
到BATHOME交流群发红包答谢去了。
发表于 2023-8-21 16:29:55 | 显示全部楼层
回复 3# locoman


# 字符串转换成base64编码
  1. powershell "[Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes('bbs.bathome.net'))"
复制代码
# 把base64编码还原成字符串
  1. powershell "[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String('YmJzLmJhdGhvbWUubmV0'))"
复制代码
# 字符串转换成base64编码 - UTF8编码可以处理包含中文的字符串
  1. powershell "[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('批处理之家 bathome.net'))"
复制代码
# 把base64编码还原成字符串 - UTF8编码可以处理包含中文的字符串
  1. powershell "[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('5om55aSE55CG5LmL5a62IGJhdGhvbWUubmV0'))"
复制代码
# 把二进制文件转换成base64编码
  1. powershell "[Convert]::ToBase64String([IO.File]::ReadAllBytes('DumpEDID.exe'))" > B64.txt
复制代码
# 把base64编码还原成二进制文件
  1. powershell "[IO.File]::WriteAllBytes('DumpEDID.exe', [Convert]::FromBase64String([IO.File]::ReadAllText('B64.txt')))"
复制代码
# 把二进制文件转换成base64编码并输出到剪贴板
  1. powershell "[Convert]::ToBase64String([IO.File]::ReadAllBytes('DumpEDID.exe'))" | clip
复制代码
 楼主| 发表于 2023-8-21 23:36:14 | 显示全部楼层
本帖最后由 locoman 于 2023-8-21 23:40 编辑

回复 6# Batcher

十分感谢您的热情周到的帮助!!

# 把base64编码还原成字符串
powershell "[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String('YgBiAHMALgBiAGEAdABoAG8AbQBlAC4AbgBlAHQA'))"

实测报告:
WIN10,如果是含有中文字符编码成base64编码后,再将得到的base64编码还原成字符,就是乱码了!
发表于 2023-8-22 09:34:27 | 显示全部楼层
回复 7# locoman


    用UTF8编码就行了,见6楼的写法。
 楼主| 发表于 2023-8-22 15:43:47 | 显示全部楼层
本帖最后由 locoman 于 2023-8-22 15:47 编辑

# 把base64编码还原成字符串
powershell "[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String('YmJzLmJhdGhvbWUubmV0'))"

还原后的字符串与源字符串有所不同了:每个字符之间都多出了一个空格。

详见下图:
[img] https://cloud.fynote.com/share/d/MJH5WPq7[/img]
发表于 2023-8-22 16:15:17 | 显示全部楼层
回复 9# locoman


    因为你是unicode字符串转base64再转ascii字符串的,英文的unicode字符有两个字节而ascii只有一个字节,你所见的空格应该是多余的\x00
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:21 , Processed in 0.021746 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表