• [转]批处理隐藏运行的10种思路


     

    源地址:http://www.cn-dos.net/forum/viewthread.php?tid=23846&fpage=1&highlight=%E9%9A%90%E8%97%8F%E8%BF%90%E8%A1%8C

    1.基础

    HideRun.vbs

    CODE:  [Copy to clipboard]
    CreateObject("WScript.Shell").Run "cmd /cD:\test.bat",0

    其中D:\test.bat是你的批处理路径
    HideRun.bat

    CODE:  [Copy to clipboard]
    echo CreateObject("WScript.Shell").Run "cmd /cD:\test.bat",0>$tmp.vbs
    cscript.exe /e:vbscript $tmp.vbs
    del $tmp.vbs

    这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。
    HideRun.js

    CODE:  [Copy to clipboard]
    new ActiveXObject('WScript.Shell').Run('cmd /cD:\Test.bat',0);

    用Javascript有什么好处呢?js的字符串变量可以用单引号,从而方便命令行作为参数调用,而且js很好的支持多行语句用 ; 分隔写成一行。要注意的是:js要区分大小写,方法必须用括号,结尾必须有分号。所以就成了下面的命令:

    CODE:  [Copy to clipboard]
    mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /cD:\test.bat',0);window.close()"

    2.用快捷方式

    如果要使一个批处理本身隐藏,可以参考附件里的一个快捷方式,修改附件中的相关路径即可隐藏启动你的批处理。可以用vbs来建立一个 .lnk,其实用批处理也行(先echo一个vbs出来)

    3.利用系统服务

    可以用sc建立一个系统服务然后启动这个服务来启动批处理。缺点是启动服务较慢,需要管理员权限
    查考这个帖子,
    http://www.cn-dos.net/forum/view ... =%E6%9C%8D%E5%8A%A1
    asbai 兄的大作,极大的方便了我们的使用。

    CODE:  [Copy to clipboard]
    runassrv add /cmdline:"C:\Windows\System32\cmd.exe /cD:\test.bat" /name:"mysrv"
    net start mysrv

    4.利用at计划任务

    用at可以建立一个计划任务,在不输入 /interactive 参数可以后台运行。但是建使用at必须有管理员权限

    CODE:  [Copy to clipboard]
    at 09:10 "cmd /cD:\Test.bat"

    然后在 9:10 系统就会自动后台以SYSTEM权限运行这个bat

    5.利用ftype文件关联

    综合上面的技术,使所有批处理都隐藏运行

    CODE:  [Copy to clipboard]
    ftype batfile=C:\Windows\System32\mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c%1',0);window.close();"

    大家可以讨论下下面的思路,目前没有明确的方法,但是理论上是可行的

    6.rundll32

    其实这个方法只是理论上估计的,这里提出来占个位置,留个记号,等待高手研究
    rundll32可以调用 dll 里的API,如果有个dll可以隐藏run一个exe就可以实现隐藏启动批处理,呵呵。目前我也没找到方法。

    7.其他用户

    Windows 2k/XP支持多用户,如果能在后台登陆另一个账户的桌面然后运行一个批处理,就能完全达到隐藏的目的

    8.bat2vbs

    这个方法只是一个不是很成熟的思路。
    查考这个帖子:
    http://www.cn-dos.net/forum/view ... p;highlight=exe2bat
    这使我们产生了一个想法:把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat

    9. .NET编译

    参考这个帖子:
    http://www.cn-dos.net/forum/view ... hlight=script%2Bnet
    里面提到了一个 .NET Warpper,我们完全可以利用系统自带的组件把bat编译到 exe 当中。如果bat不涉及交互,exe自然就安静的运行了。

    10.注入汇编

    最后向大家推出的今天最隆重的,ASCII Assembly Code专家 Herbert Kleebauer 的又一力作:showwin.exe

      Quote:
    showwin.exe let you minimize/maximize/hide the command window
    within a batch program (requires W2k or better).


    Usage:  showwin.exe number


    0 SW_HIDE
       Hides the window and activates another window.


    1 SW_SHOWNORMAL
       Activates and displays a window. If the window is minimized or maximized,
       the system restores it to its original size and position. An application
       should specify this flag when displaying the window for the first time.


    2 SW_SHOWMINIMIZED
       Activates the window and displays it as a minimized window.


    3 SW_MAXIMIZE
       Maximizes the specified window.


    3 SW_SHOWMAXIMIZED
       Activates the window and displays it as a maximized window.


    4 SW_SHOWNOACTIVATE
       Displays a window in its most recent size and position. This value is
       similar to SW_SHOWNORMAL, except the window is not actived.


    5 SW_SHOW
       Activates the window and displays it in its current size and position.


    6 SW_MINIMIZE
       Minimizes the specified window and activates the next top-level window
       in the Z order.


    7 SW_SHOWMINNOACTIVE
       Displays the window as a minimized window. This value is similar to
       SW_SHOWMINIMIZED, except the window is not activated.


    8 SW_SHOWNA
       Displays the window in its current size and position. This value is
       similar to SW_SHOW, except the window is not activated.


    9 SW_RESTORE
       Activates and displays the window. If the window is minimized or maximized,
       the system restores it to its original size and position. An application
       should specify this flag when restoring a minimized window.


    10 SW_SHOWDEFAULT
       Sets the show state based on the SW_ value specified in the STARTUPINFO
       structure passed to the CreateProcess function by the program that
       started the application.


    11 SW_FORCEMINIMIZE
       Windows 2000/XP: Minimizes a window, even if the thread that owns the
       window is not responding. This flag should only be used when minimizing
       windows from a different thread.


    ---------------------------------------------------------------------------


    A simple example:


    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:
    @echo off
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>showwin.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>showwin.com
    echo T}{zE~@gwkBG@OEKcUt`E}@mqqBsy?seHBEaPhxr?@zAB`LrPEyoDt@Cj?>>showwin.com
    echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>showwin.com
    echo FEvAUSQ?_YLTQ@@?~QCo_F~RDU@?aU?@MQ_AMy1GHs?Gw`LbLK@shM`S_d>>showwin.com
    echo bD_nsDddlTr_sPdlnTcnaTv_xP_ngD_rhDhsrT_kkDhrtT_fmDRNCTILk?>>showwin.com
    echo staThg_So_rPfnqTl`qTdq_ShtpTrdqThV_Sqrm@ILm?O?cOKFDP?@@?dx>>showwin.com
    echo OdFUu?N?_B@J@??KD?HUA?QOGB_QO?F?SCAQO?UDF?UCE?Q_F?DUA?CUB?>>showwin.com
    echo OFO?FOS?DUO?IUO?FOW?RU{OWFO?mYU?wdsTeQs@OQ@?QAQ?LUA?_F_og~>>showwin.com
    echo UODUO?FOSAFOeAUOyAO_DCSHUOOQO?OCFGuHUOGFO?TUO?DRTTqrQ@kcmS>>showwin.com
    echo gFkPFUO?ngRThVvTncmTJFvPMQDTrKDDcmqOFkkDFOSAFOeAUOyAdFFSnB>>showwin.com
    echo sT`llTKcmTdmhTFQ@PBsdTrmnTdknTmhVTvncTwDSSOshTbnqTrrdTT~?K>>showwin.com
    echo ?OGOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\=upkNQD??OuQsQG[i?>>showwin.com
    echo RwrqosHy?Mjmv\@IuBlpUrHdjNAslF~mH}OKT?U??PT~OL?O?O?i?COT~B>>showwin.com
    echo U?OCU?YF0x>>showwin.com


    showwin.com>showwin.exe
    del showwin.com


    dir


    :: wait 4 seconds
    ping -n 4 localhost >nul


    :: hide window
    showwin.exe 0


    dir /b


    :: wait 4 seconds
    ping -n 4 localhost >nul


    :: show window
    showwin.exe 5


    :: wait 4 seconds
    ping -n 4 localhost >nul


    del showwin.exe


    原帖地址在
    http://groups.google.com/group/a ... ad/b30d93c7f43b6731
    问题是我后脸皮发的。嘿嘿
    不过我还没有测试成功。估计是keyboard layout和language/code page不同造成的

    出于个人意愿。此帖拒绝外传。违者斩,嘿嘿
    里面绝大多数技巧在这个论坛里早就出现了,所以感谢论坛里的朋友、前辈们的启迪
    大家还有什么好的方法、思路也都发上来呀


    /Files/jevan/DOS/HideRun.lnk.rar

  • 相关阅读:
    自己奋斗才有用,人要坚持到成功为止
    自己需要的都是靠自己争取,人生只有自己才靠得住
    不如意也是要过日子,人是不可能和天斗的
    懂得满足也是好的,人要学会知足才会感到幸福
    不要让自己有后悔的时候,人都是要不负自己的青春年少
    ES6 の 块级作用域
    javascript中this的指向分析
    let & var 的区别
    npm 全局安装环境配置
    visibilitychange => 获取页面的可见性
  • 原文地址:https://www.cnblogs.com/jevan/p/1606289.html
Copyright © 2020-2023  润新知