常用引导,有时启动某个应用需要环境变量可以这样启动应用,会对启动的进程生效,即被继承
setPATH=D:\Developer\sdk\platform-tools;%PATH%
D:chdirD:\Developer\Cygwin\binREM推荐注释REM,次之::。@echooffsetAndBug=D:\Developer\Cygwin\home\Sansan\AndBugsetPATH=D:\Developer\sdk\platform-tools;%PATH%
ifdefinedPYTHONPATH(setPathDelimiter=;)setPYTHONPATH=%AndBug%\lib%PathDelimiter%%PYTHONPATH%
D:chdir%AndBug%
C:\Python27\python.exeandbug
获取目录举例
1、检测网站是否被黑
2、检测网站是否被劫持
3、检测域名是否被墙
4、检测DNS是否被污染
6、拥有独立监控后台,24小时定时监控域名
官方图:
::当前正在运行的批处理文件所在路径:
REM!cd!=C:\Masm64\Masm64\Examples\Console
::当前目录是:C:\Masm64\Masm64\Examples\Console
REM%cd%=C:\Masm64\Masm64\Examples\Console
::当前的盘符及路径:C:\Masm64\Masm64\Examples\Console\
REM%~dp0=C:\Masm64\Masm64\Examples\Console\
::当前的盘符及路径的短文件名格式:
REM%~sdp0=C:\Masm64\Masm64\Examples\Console\::转义
::1、代码XXX中如含><&|需在每个这类符号前加转义符^
::2、符号%不能用^而是双写自己,如echo%%windir%%输出字符串%windir%。当然如果是想把本次批处理中的某变量值传递到新批处理中(即在新批处理中此处已是常量)另当别论,从某个意义上说,这种情况用批处理建批处理有一定实际意义——只有运行本批处理,才能得到运行另一批处理需要的数据
::3、如果你写这句代码处在某括号之中,那么括号也很特殊,可能也要加^来转义其他的我没仔细想,也许还有,例如符号!::总之可能对本批处理会起到改变命令作用的都要转义
::4、如果代码中有转义符本身,则它也要转义,等于是双写
::5、如果写入另一批处理的代码较多,且排除了上一条所说的传递变量值的情况,可用另一方法不用转义就照代码需要格式写,方法是在本批处理最后加一句
::more+8%0>123.bat&exIt(这里的数字8表示到本行共有多少行,据实改)
::表示把本批处理第8行之后的内容写入新批处理并退出(即不执行之后的代码)再把要写入的所有代码写在本批处理的最后pause
%0即代表该批处理的全称(包括驱动器盘符、路径、文件名和扩展类型)
组合修饰符来得到多重结果%~df0
%~fI-将%I扩充到一个完全合格的路径名
%~dI-仅将%I扩充到一个驱动器号
Inaddition,substitutionofFORvariablereferenceshasbeenenhanced.
Youcannowusethefollowingoptionalsyntax:
%~fI-expands%Itoafullyqualifiedpathname
%~dI-expands%Itoadriveletteronly
%~pI-expands%Itoapathonly
%~nI-expands%Itoafilenameonly
%~xI-expands%Itoafileextensiononly
%~sI-expandedpathcontainsshortnamesonly
%~aI-expands%Itofileattributesoffile
%~tI-expands%Itodate/timeoffile
%~zI-expands%Itosizeoffile
%~$PATH:I-searchesthedirectorieslistedinthePATH
environmentvariableandexpands%Itothe
fullyqualifiednameofthefirstonefound.
Iftheenvironmentvariablenameisnot
definedorthefileisnotfoundbythe
search,thenthismodifierexpandstothe
emptystring
Themodifierscanbecombinedtogetcompoundresults:
%~dpI-expands%Itoadriveletterandpathonly
%~nxI-expands%Itoafilenameandextensiononly
%~fsI-expands%Itoafullpathnamewithshortnamesonly
%~dp$PATH:I-searchesthedirectorieslistedinthePATH
environmentvariablefor%Iandexpandstothe
driveletterandpathofthefirstonefound.
%~ftzaI-expands%ItoaDIRlikeoutputline
Intheaboveexamples%IandPATHcanbereplacedbyothervalid
values.The%~syntaxisterminatedbyavalidFORvariablename.
Pickinguppercasevariablenameslike%Imakesitmorereadableand
avoidsconfusionwiththemodifiers,whicharenotcasesensitive.
ViewCode
如果这个批处理没有以管理员身份运行则弹窗请求权限,再执行后续需要高权限的代码(运行高权限代码检查errorlevel值判断权限,不是则创建临时vbs来请求权限再重新运行此批处理)
@echooff
::BatchGotAdmin
::-------------------------------------
REMCheckforpermissions
echoRequestingadministrativeprivileges...
gotoUACPrompt)else(gotogotAdmin)
REMgetadmin.vbs:
%getAdminFile%
exIt/B
:gotAdmin
ifexIst%getAdminFile%(del%getAdminFile%)
echoIhavetheadministrativeprivilege.::cmd利用DIsm离线安装.NETFramework3.5
Dism/online/enable-feature/featurename:NetFX3/All/Source:H:\sources\sxs/LimitAccesspause>nul
在20:02执行一次关机(有60秒提示)命令,会返回ID数值:at20:02shutdown-s-t60
删除指定计划:at2/delete
查看计划任务at
其保存位置在,win7是C:\Windows\System32\Tasks
Taskinformationisstoredin%WINDIR%\System32\Tasks(orC:\Windows\System32\Tasks).Theyappeartobestoredasasinglefilepertask,inanXMLtypeformat.
TheyarethenreferencedfromtheregistryinHKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Schedule\TaskCache
::MKLINK[[/D]|[/H]|[/J]]LinkTarget
::
::/D创建目录符号链接。默认为文件符号链接。
::/H创建硬链接,而不是符号链接。
::/J创建目录联接。
::Link指定新的符号链接名称。
::Target指定新链接引用的路径(相对或绝对)。
::cd%cd%setDIR_PATH_CONTAINS_THIS_BAT=%~p0::MKLINK/J%~n1%1
::IFExIST%cd%\libs\x86MKLINK/Jx86%cd%\libs\x86
::IFExIST%cd%\libs\armeabiMKLINK/Jarmeabi%cd%\libs\armeabi
::IFExIST%cd%\libs\armeabi-v7aMKLINK/Jarmeabi-v7a%cd%\libs\armeabi-v7a
for/d%%din(%*)doMKLINK/J%DIR_PATH_CONTAINS_THIS_BAT%%%~nd%%dpause
echo后缀名为:%%~xa)pause
拖放处理,制作mklink
1.分行可以把一个命令写成多行哦
例:
@echo1^
2^
3^
4
@pause>nul
复制上面的命令,执行结果是什么这就是分行符的作用
2.转义
当我们试图输出一个&的时候,我们会发现输出不了...因为它被当成分行符处理了
这时就要请出转义符^了,它可以剥夺后面第一个符号的特殊地位,变为普通符号(这其实是一个很神奇的功能,之所以神奇...赘不详述)
@echo^&
这样就输出了&
附:有时%也能起到转义的效果
摘自:批处理之家
pause
echo变量str的值不为空)elseecho变量str为空值pausegotoMain
呵,鸡蛋里挑点骨头^_^用ifdefined判断某个变量是否被定义过时需注意以下2点:1、变量名若含空格,不能直接输入空格,有空格时需用变量来代替,且必须是用双!!来引用这个含空格的变量也就是必须开启延迟变量,或者将需判断的变量名赋值给for的%%i变量。2、若判断的变量名需要使用变量的字符截取功能时,则与上面的正好相反。即:不能使用!!来引用变量,即使是在for中也是一样。
call:strlenlen
echo%len%
pause&goto:eof
:strlen
setlocalEnableDelayedExpansion&setn=0
:strlen_loop
感觉这类代码不存在完美不完美,通用型代码往往效率不够高,针对型代码局限性太大。还是应该具体情况具体分析,根据已知条件的多少来写针对性的代码是最适合的。
代码如下,例如输入的内容为|*等特殊字符时,会直接出错,有什么办法可以在不需要输入预处理符号的情况下,对输入包含特殊字符的内容进行处理要求:在输入非0-9的字符时,进行提示.另外,变量为空值时不会退出批处理
::将数字设为分隔符,若能取到第一节,则存在非数字字符
::增加环境变量到PATH
@setPATH=F:\Android\sdk\platform-tools;%PATH%::设置工程libs目录
@setLIBS=F:\Android\workspace\AInject\libs::设置ADB路径,暂时未使用,因为直接使用PATH
@setADB=F:\Android\sdk\platform-tools\adb.exe::架构armeabi、armeabi-v7a、x86等,默认armeabi
::@setPATH=D:\Developer\sdk\platform-tools;%PATH%
::@setADB=D:\Developer\sdk\platform-tools\adb.exe
::@setLIBS=D:\Developer\workspace\AndroidInject\libs
@setARCH=%1
@ifnotdefinedARCH(setARCH=armeabi)elseechoyes@echo%ARCH%
@cd%LIBS%
adbpush%ARCH%\inject/data/local/%ARCH%
adbpush%ARCH%\librservice.so/data/local/%ARCH%
::创建一个bat文件,内容如下
doskeyg++=g++-static-libgcc-static-libstdc++$*
@doskeyls=dir/b$*
@doskeyl=dir/od/p/q/tw$*
::解释:doskey就相当于Linux中的alias,等于号左边是其右边的别名,$*表示这个命令还可能有其他参数,@表示执行这条命令时不显示这条命令本身
::将这个文件保存到任意一个目录下,但是最好是英文路径,我选的是C:\Users\XX(我的用户名)\cmd_autoexe.bat
::打开cmd,输入cmd/来找到autorun的注册表项,你大概看到的也是这样的(所以这一步基本上可以跳过):
::HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor\AutoRun
::and/or
::HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\AutoRun
::不过,可能没有AutoRun这个键,可以自己添加:右键——新建——字符串值,输入“AutoRun”,然后选中——右键——修改,把路径输入进去,大概像上图那样,然后关掉就可以了(这里我只改了CURRENT_USER的,没改HKEY_LOCAL_MACHINE,因为我觉得这样基本就够用了)
If/DwasNOTspecifiedonthecommandline,thenwhenCMD.EXEstarts,itlooksforthefollowingREG_SZ/REG_EXPAND_SZregistryvariables,andifeitherorbotharepresent,theyareexecutedfirst.
·HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor\AutoRun
and/or
·HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\AutoRun
CommandExtensionsareenabledbydefault.Youmayalsodisableextensionsforaparticularinvocationbyusingthe/E:OFFswitch.YoucanenableordisableextensionsforallinvocationsofCMD.EXEonamachineand/oruserlogonsessionbysettingeitherorbothofthefollowingREG_DWORDvaluesintheregistryusingREGEDIT.EXE:
·HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor\EnableExtensions
·HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\EnableExtensions
toeither0x1or0x0.Theuserspecificsettingtakesprecedenceoverthemachinesetting.Thecommandlineswitchestakeprecedenceovertheregistrysettings.
Inabatchfile,theSETLOCALENABLEEXTENSIONSorDISABLEEXTENSIONSargumentstakesprecedenceoverthe/E:ONor/E:OFFswitch.SeeSETLOCAL/fordetails.
Thecommandextensionsinvolvechangesand/oradditionstothefollowingcommands:
·DELorERASE
·COLOR
·CDorCHDIR
·MDorMKDIR
·PROMPT
·PUSHD
·POPD
·SET
·SETLOCAL
::Convertasetofclassfilesintoadexfile,optionallyembeddedinajar/zip.Outputnamemustendwithoneof:.dex.jar.zip.apkorbeadirectory.
::@setASDKX=F:\Android\sdk\platforms\android-8
@setprojectpath=F:\Android\workspace\AInject
@setdx=F:\Android\sdk\build-tools\android-4.4W\dx.bat
::控制输出文件的后缀名
@setfilename_posix=%1ifnotdefinedfilename_posixsetfilename_posix=jar
@setoutput=%projectpath%\libs\dex_classes.%filename_posix%
::
@setclassfiles=F:\Android\workspace\AInject\bin\classes::::
::::@setclassfiles=F:\Android\workspace\AInject\bin\classes\com\android\ainject\Main.class
::::=============javac=============
::::javac-d<目录>指定存放生成的类文件的位置-target1.8VM版本,电脑上装的环境版本
::::javac-encodingutf-8-target1.5-dbin\%projectpath%\*.java-bootclasspath%ASDKX%\android.jar
::@setplugin_classdir=F:\Android\workspace\AInject\bin\plugin_classes
::ifnotexIst%plugin_classdir%mkdir%plugin_classdir%
::javac-encodingutf-8-source1.6-target1.8-d%plugin_classdir%F:\Android\workspace\AInject\src\com\android\ainject\Main.java-bootclasspath%ASDKX%\android.jar-cpF:\Android\workspace\AndroidSDK17\bin\androidsdk17.jar
::%dx%--dex--output=%output%%plugin_classdir%
::::===============================
%dx%--dex--output=%output%%classfiles%
::@setMainDexList=F:\Android\workspace\AInject\libs\class_file_names_for_MainDexList.txt
::forexample.MainDexList.txt
::line1.android/support/multidex/MultiDex.class
::line2.com/android/ainject/Main.class
::%dx%--dex--output=%output%--multi-dex--main-dex-list=%MainDexList%--minimal-main-dex%classfiles%
1.删除注册表中的项:
WindowsRegistryEditorVersion5.00
2.
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
3.
保存为reg文件双击导如即可删除此项,注意有个“-”号
4.
5.删除注册表中的值:
6.
7.
这样可以删除此值
8.
9.设置注册表中的值:
HKEY_CURRENT_USER\Software\Policies\Microsoft\InternetExplorer\ControlPanelHomePage=dword:00000000
10.
C:\Users\ss>regadd/
REGADDKeyName[/vValueName|/ve][/tType][/sSeparator][/dData][/f][/reg:32|/reg:64]
KeyName[\\Machine\]FullKeyMachineNameofremotemachine-omittingdefaultstothecurrentmachine.OnlyHKLMandHKUareavailableonremotemachines.FullKeyROOTKEY\SubKeyROOTKEY[HKLM|HKCU|HKCR|HKU|HKCC]SubKeyThefullnameofaregistrykeyundertheselectedROOTKEY.
/vThevaluename,undertheselectedKey,toadd.
/veaddsanemptyvaluename(Default)forthekey.
/tRegKeydatatypes[REG_SZ|REG_MULTI_SZ|REG_EXPAND_SZ|REG_DWORD|REG_QWORD|REG_BINARY|REG_NONE]Ifomitted,REG_SZisassumed.
/dThedatatoassigntotheregistryValueNamebeingadded.
/fForceoverwritingtheexIstingregistryentrywithoutprompt.
/reg:32Specifiesthekeyshouldbeaccessedusingthe32-bitregistryview.
/reg:64Specifiesthekeyshouldbeaccessedusingthe64-bitregistryview.
Examples:
REGADD\\ABC\HKLM\Software\MyCoAddsakeyHKLM\Software\MyCoonremotemachineABC
REGADDHKLM\Software\MyCo/vData/tREG_BINARY/dfe340eadAddsavalue(name:Data,type:REG_BINARY,data:fe340ead)
REGADDHKLM\Software\MyCo/vMRU/tREG_MULTI_SZ/dfax\0mailAddsavalue(name:MRU,type:REG_MULTI_SZ,data:fax\0mail\0\0)
eeee
remUpdatetheImageFileExecutionkey.
remCleanupregistryflags.
Debugger参数作用:原来收到的执行请求的文件名和参数则被转化为Debugger指定程序的整个命令行参数。
Debugger参数的这种特殊作用,它又被称为“重定向”(Redirection),而利用它进行的攻击,又被称为“重定向劫持”(RedirectionHijack),它和“映像劫持”(ImageHijack,或IFEOHijack)只是称呼不同,实际上都是一样的技术手段。