Originally posted by quya at 2008-6-23 09:30 PM:
My god, even after reading the explanation I still don't understand it. Could some kind person explain it patiently, so an older person like me can learn too?
Especially things like %.33%%.31%%.4%%.25%%.10% — just looking at that makes my head spin, the whole thing is completely foggy, I really ...
@echo off
set /p code=Please enter the run password:
cls&call :zw
%.33%%.31%%.4%%.25%%.10% %.10%%.14%%.14%&%.19%%.31%%.6%%.5%%.10%%.4%%.27%%.5% %.31%%.18%%.27%%.32%%.5%%.31%%.22%%.31%%.5%%.27%%.17%%.31%%.22%%.31%%.15%%.2%%.27%%.18%%.19%%.13%%.10%%.18%
%.19%%.31%%.6% "%.30%%.27%%.28%=%.11% %.29% * %.24%"
for /f "tokens=1-4 delims= " %%a in ("%var%") do call :lp %%a %%b %%c %%d
%.2%%.27%%.1%%.19%%.31%>%.18%%.1%%.5%&%.8%%.10%%.6%%.10% :%.31%%.10%%.14%
:lp
for /l %%i in (1,1,9) do (
for /l %%j in (1,1,%%i) do (
set /a a=%%i%1%%j
%.13%%.14% !%.27%! %.5%%.19%%.19% 10 %.19%%.31%%.6% %.27%= !%.27%!
set str=!str! %%i%1%%j=!a!
if %%i equ %%j echo !str!&set "str="
)
)
if "%1" equ "/" goto :eof
%.19%%.25%%.13%%.14%%.6%
goto lp
pause>nul&goto :eof
:zw
for %%i in (%code%) do (set /a n+=1&call,set .%%n%%=%%i)
That red line assigns values in sequence according to the input code...
For example, if code is a b c d e f g。。。。。。。。。。10 (10 is in the 33rd position)
When n equals 1, the value of .1 is a
When n equals 2, the value of .2 is b
When n equals 3, the value of .3 is c
.... .....
When n equals 33, the value of .33 is 10
And so on... until all values are assigned
Then it returns to the main process and continues executing downward...
%.33% will expand to 10
For example, if the value of %.31% is h
the value of %.4% is z
the value of %.25% is l
the value of %.10% is w
Then %.33%%.31%%.4%%.25%%.10% is equivalent to executing 10hzlw. That's not a command, so it will produce the error message "is not recognized as an internal or external command"...
Only after the assignment is correct will it execute properly
The correct assignment should be:
.33=@
.31=e
.4=c
.25=h
.10=o
So %.33%%.31%%.4%%.25%%.10% becomes the correct command @echo...
And whether the assignment is correct depends entirely on the order of the characters when the password is entered~
The hidden symbol @ is only assigned correctly when it is in the 33rd position... and so on...
I've explained it too tediously...
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^