Board logo

标题: [其他] 【已解决】请问bat怎么转换成exe才不报毒? [打印本页]

作者: aceamuro    时间: 2019-10-27 09:13     标题: 【已解决】请问bat怎么转换成exe才不报毒?

本帖最后由 aceamuro 于 2021-2-3 19:04 编辑

有些代码好像用什么转都报毒,甚至用winrar自解压都报,有些就正常
比如这段就怎么转都报毒,请问究竟哪些代码会报毒,有没有解决方法?
  1. "%~dp0PowerRun\SVP4.exe" "%~dp0temp\del.exe"
  2. :loop0
  3. IF NOT EXIST "%~dp0temp\卸载" goto loop0
  4. mklink /J "%ProgramFiles%\ffdshow" "%~dp0SystemFile\Program Files\ffdshow"
  5. mklink /J "%ProgramFiles(x86)%\AviSynth+" "%~dp0SystemFile\Program Files (x86)\AviSynth+"
  6. mklink /J "%ProgramFiles(x86)%\ffdshow" "%~dp0SystemFile\Program Files (x86)\ffdshow"
  7. mklink /J "%ProgramFiles(x86)%\LAV Filters" "%~dp0SystemFile\Program Files (x86)\LAV Filters"
  8. mklink /J "%ProgramFiles(x86)%\MPC-HC" "%~dp0SystemFile\Program Files (x86)\MPC-HC"
  9. mklink /J "%ProgramFiles(x86)%\ReClock" "%~dp0SystemFile\Program Files (x86)\ReClock"
  10. mklink "%windir%\SysWow64\AviSynth.dll" "%~dp0SystemFile\Windows\SysWOW64\AviSynth.dll"
  11. mklink "%windir%\SysWow64\DevIL.dll" "%~dp0SystemFile\Windows\SysWOW64\DevIL.dll"
  12. mklink "%windir%\SysWow64\ff_vfw.dll" "%~dp0SystemFile\Windows\SysWOW64\ff_vfw.dll"
  13. mklink "%windir%\System32\AviSynth.dll" "%~dp0SystemFile\Windows\System32\AviSynth.dll"
  14. mklink "%windir%\System32\DevIL.dll" "%~dp0SystemFile\Windows\System32\DevIL.dll"
  15. :loop1
  16. IF NOT EXIST "%~dp0temp\mark" goto loop1
  17. regedit /s "%~dp0temp\run-all.reg"
  18. netsh advfirewall firewall add rule name="SVPManager" dir=out program="%~dp0MainProgram\SVPManager.exe" action=block
  19. netsh advfirewall firewall add rule name="svp4-maintenance" dir=out program="%~dp0MainProgram\svp4-maintenance.exe" action=block
  20. md "%~dp0temp\finished"
复制代码
另外说一句,搜百度的时候看到好多人都说bat没必要转exe,其实我觉得转成exe好处还是挺多的
目的不一定是给代码保密,主要是exe可以自定图标,还能右键直接固定到开始菜单。当然快捷方式也能做到,但操作比exe麻烦,而且重装系统的话还要重新生成,每个软件都这么来一遍的话工作量还挺大的
而且exe看起来比较上档次,像个正规软件,所以个人觉得转成exe还是挺有必要的
作者: Batcher    时间: 2019-10-27 21:43

可能是因为你用过的几个转换软件得到的exe在执行的时候都会释放一个bat文件出来到临时目录或者其它目录,杀软发现了这个临时bat所以报毒了。
作者: aceamuro    时间: 2019-10-27 23:48

本帖最后由 aceamuro 于 2019-10-27 23:49 编辑
可能是因为你用过的几个转换软件得到的exe在执行的时候都会释放一个bat文件出来到临时目录或者其它目录,杀 ...
Batcher 发表于 2019-10-27 21:43

顶楼的代码好像是下面这种语句的问题
  1. :loop1
  2. IF NOT EXIST "%~dp0temp\mark" goto loop1
复制代码
把它改成
  1. :loop1
  2. IF NOT EXIST "%~dp0temp\mark" (goto loop1) else goto next
  3. :next
复制代码
这种完整的模式再转exe,目前反复运行5个多小时还没出问题,主动查毒也没查出什么
可下面这段代码就删除几个文件建立几个链接这么简单,怎么转都报毒。
  1. rd /s/q "%userprofile%\AppData\Local\Honeygain"
  2. mklink /J "%userprofile%\AppData\Local\Honeygain" ".\Honeygain"
  3. rd /s/q "%AppData%\sweet money\honeygain"
  4. mklink /J "%AppData%\sweet money\honeygain" "%~dp0exe\Honeygain\Roaming\sweet money\honeygain"
  5. start .\5UStart.exe
  6. exit
复制代码
另外这个应该是没有释放临时文件的
我特意用pause命令检查过正常运行的代码,当前目录里没有临时bat
如果释放到临时目录,像%~dp0这种相对路径的指向肯定会出错,代码应该会运行失败才对
作者: Batcher    时间: 2019-10-28 09:18

回复 3# aceamuro


我说不是这个代码释放另外一个bat,而是转换成的exe在执行的时候会释放出bat
至于代码改成什么样子能不报毒,只能慢慢尝试,你无法改变杀软的判断
作者: aceamuro    时间: 2021-2-3 19:03

回复 4# Batcher
谢谢您的解释,经过很长时间的反复尝试后,发现所有的语句都在win10的某次更新中被判定成病毒了
但我发现了另一个方法,可以用下面这个vbs代码启动bat,然后把这个vbs文件转成exe就可以了,既不会提示报毒也可以隐藏bat窗口
  1. set ws=WScript.CreateObject("WScript.Shell")
  2. ws.Run "运行.bat",0
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2