у меня есть проблема с заменой строки в партии - PullRequest
2 голосов
/ 06 октября 2011

Я пытаюсь сделать свое собственное шифрование для DLL-файлов.но это не сработает так, как я хочу, это тоже может помочь.


@echo off
set /p lol=(
echo %lol%>test.dll
for /f "tokens=*" %%j in (test.dll) do set f1=%%j
set f1=%f1:a=QUE%
set f1=%f1:b=GUI%
set f1=%f1:c=DOP%
set f1=%f1:d=EXO%
set f1=%f1:e=CUI%
set f1=%f1:f=RAY%
set f1=%f1:g=TAI%
set f1=%f1:h=YAM%
set f1=%f1:i=*+=%
set f1=%f1:j=UIT%
set f1=%f1:k=ITO%
set f1=%f1:l=ORC%
set f1=%f1:m=KIP%
set f1=%f1:n=JAA%
set f1=%f1:o=(.)%
set f1=%f1:p=)Y(%
set f1=%f1:q=!i!%
set f1=%f1:r=$S$%
set f1=%f1:s=WPL%
set f1=%f1:t=%*/%
set f1=%f1:u=FOL%
set f1=%f1:v=FUK%
set f1=%f1:w=@.@%
set f1=%f1:x=S$$%
set f1=%f1:y=^.^%
set f1=%f1:z=AAP%
set f1=%f1:A=qal%
set f1=%f1:B=gal%
set f1=%f1:C=dor%
set f1=%f1:D=ert%
set f1=%f1:E=332%
set f1=%f1:F=rat%
set f1=%f1:G=pok%
set f1=%f1:H=yap%
set f1=%f1:I=8-)%
set f1=%f1:J=uki%
set f1=%f1:K=ipa%
set f1=%f1:L=o:)%
set f1=%f1:M=kop%
set f1=%f1:N=jas%
set f1=%f1:O=911%
set f1=%f1:P=007%
set f1=%f1:Q=112%
set f1=%f1:R=4gh%
set f1=%f1:S=wrq%
set f1=%f1:T=5hi%
set f1=%f1:U=777%
set f1=%f1:V=gak%
set f1=%f1:W=2g2%
set f1=%f1:X=dom%
set f1=%f1:Y=666%
set f1=%f1:Z=aal%
set f1=%f1:0=ugb%
set f1=%f1:1=zup%
set f1=%f1:2=xfi%
set f1=%f1:3=cmv%
set f1=%f1:4=vui%
set f1=%f1:5=but%
set f1=%f1:6=nom%
set f1=%f1:7=mon%
set f1=%f1:8=hub%
set f1=%f1:9=whn%
set f1=%f1:!=ZIP%
set f1=%f1:@=XLO%
set f1=%f1:$=CVB%
set f1=%f1:%=VQE%
set f1=%f1:^=BUY%
set f1=%f1:&=NAM%
set f1=%f1:*=MAL%
set f1=%f1:(=LAL%
set f1=%f1:)=JN9%
set f1=%f1:#=255%
set f1=%f1:_=?19%
set f1=%f1:-={GT%
set f1=%f1:==SC}%
set f1=%f1:+=J~L%
set f1=%f1:\=;RT%
set f1=%f1:|=:OP%
set f1=%f1:{=KAA%
set f1=%f1:}=KAL%
set f1=%f1:[=PLO%
set f1=%f1:]=DQW%
set f1=%f1::=PIP%
set f1=%f1:;=AR9%
set f1=%f1:"=UNF%
set f1=%f1:'=CNP%
set f1=%f1:<=JMN%
set f1=%f1:>=HBH%
set f1=%f1:,=25J%
set f1=%f1:.=YF7%
set f1=%f1:/=UYG%
set f1=%f1:?=DFG%
set f1=%f1:`=PUY%
set f1=%f1:~=CV7%
echo %f1%>test.dll
pause
exit

Ответы [ 3 ]

1 голос
/ 06 октября 2011

Честно говоря, я не уверен, что подразумевается под фрагментом кода. Во-первых, перенаправление> очистит все содержимое файла DLL. Далее, я подозреваю, что любая из ваших команд в блоке set после первого эха сможет выполнить. Конечно, переменная% lol% никогда не получит значение в блоке, она будет оценена перед выполнением чего-либо в пределах блока набора, если не включена функция delayedexpansion. Попробуйте включить задержку расширения.

Поместите это сверху:

setlocal enabledelayedexpansion

и квалифицируйте все% var% в! Var!

Надеюсь, что этот пост даст вам какой-то старт для достижения того, чем вы занимаетесь.

0 голосов
/ 10 марта 2012

Я не уверен, исправлено ли оно или более неисправно, но я получил его, чтобы вывести это:

CVBXLOYF7XLOugbugbmonwhnzupzupPIPJN9CVBvuighabuthiwhnzupzupwhnzupzupPIPJN9cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=xfigxfirqCVBCVBLALYF7JN9vuighabuthiwhnzupzupwhnzupzupPIPJN9cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=*/

Опять же, не уверен, сработало ли это или нет, но я использовал:

setlocal enabledelayedexpansion

Есть ли способ, который вы установили для отмены этого?

REM @echo off
setlocal enabledelayedexpansion
set /p lol=(
echo %lol%>test.txt
for /f "tokens=*" %%j in (test.txt) do set f1=%%j
set f1=%f1:a=QUE%
set f1=%f1:b=GUI%
set f1=%f1:c=DOP%
set f1=%f1:d=EXO%
set f1=%f1:e=CUI%
set f1=%f1:f=RAY%
set f1=%f1:g=TAI%
set f1=%f1:h=YAM%
set f1=%f1:i=*+=%
set f1=%f1:j=UIT%
set f1=%f1:k=ITO%
set f1=%f1:l=ORC%
set f1=%f1:m=KIP%
set f1=%f1:n=JAA%
set f1=%f1:o=(.)%
set f1=%f1:p=)Y(%
set f1=%f1:q=!i!%
set f1=%f1:r=$S$%
set f1=%f1:s=WPL%
set f1=%f1:t=%*/%
set f1=%f1:u=FOL%
set f1=%f1:v=FUK%
set f1=%f1:w=@.@%
set f1=%f1:x=S$$%
set f1=%f1:y=^.^%
set f1=%f1:z=AAP%
set f1=%f1:A=qal%
set f1=%f1:B=gal%
set f1=%f1:C=dor%
set f1=%f1:D=ert%
set f1=%f1:E=332%
set f1=%f1:F=rat%
set f1=%f1:G=pok%
set f1=%f1:H=yap%
set f1=%f1:I=8-)%
set f1=%f1:J=uki%
set f1=%f1:K=ipa%
set f1=%f1:L=o:)%
set f1=%f1:M=kop%
set f1=%f1:N=jas%
set f1=%f1:O=911%
set f1=%f1:P=007%
set f1=%f1:Q=112%
set f1=%f1:R=4gh%
set f1=%f1:S=wrq%
set f1=%f1:T=5hi%
set f1=%f1:U=777%
set f1=%f1:V=gak%
set f1=%f1:W=2g2%
set f1=%f1:X=dom%
set f1=%f1:Y=666%
set f1=%f1:Z=aal%
set f1=%f1:0=ugb%
set f1=%f1:1=zup%
set f1=%f1:2=xfi%
set f1=%f1:3=cmv%
set f1=%f1:4=vui%
set f1=%f1:5=but%
set f1=%f1:6=nom%
set f1=%f1:7=mon%
set f1=%f1:8=hub%
set f1=%f1:9=whn%
set f1=%f1:!=ZIP%
set f1=%f1:@=XLO%
set f1=%f1:$=CVB%
set f1=%f1:^%=VQE%
set f1=%f1:^=BUY%
set f1=%f1:&=NAM%
set f1=%f1:^*=MAL%
set f1=%f1:(=LAL%
set f1=%f1:)=JN9%
set f1=%f1:#=255%
set f1=%f1:_=?19%
set f1=%f1:-={GT%
set f1=%f1:^==SC}%
set f1=%f1:+=J~L%
set f1=%f1:\=;RT%
set f1=%f1:|=:OP%
set f1=%f1:{=KAA%
set f1=%f1:}=KAL%
set f1=%f1:[=PLO%
set f1=%f1:]=DQW%
set f1=%f1::=PIP%
set f1=%f1:;=AR9%
set f1=%f1:"=UNF%
set f1=%f1:'=CNP%
set f1=%f1:<=JMN%
set f1=%f1:>=HBH%
set f1=%f1:,=25J%
set f1=%f1:.=YF7%
set f1=%f1:^/=UYG%
set f1=%f1:?=DFG%
set f1=%f1:`=PUY%
set f1=%f1:^~=CV7%
echo %f1%>test.txt
pause

Мне пришлось использовать (^), чтобы убрать некоторые символы, которые у вас были, что испортили вывод.

0 голосов
/ 06 октября 2011

Во-первых, полная идея хороша, но бесполезна, так как это невозможно сделать с помощью одного пакета.
По крайней мере, вы не можете прочитать символ NUL (0x00) с помощью пакета.

Почему вашкод не может работать, есть много причин, вы читаете из test.dll, пытаясь написать его одновременно, как вы ожидаете, что он может работать?

Ваш код не обрабатывает никаких специальных символов, это возможно спакет, но это сложно.

Линия set f1=%f1:*=MAL% не может работать, так как вы не можете заменить одну звезду таким образом.
Также set f1=%f1:==SC}% и set f1=%f1:~=CV7% не удастся по той же причине.

set f1=%f1:%=VQE% изменяется f1 всегда на =VQE независимо от содержимого f1.

Даже если вы удалите эти строки, ваш перевод переводит каждый символ несколько раз, а ввод a приводит к выводу

ZIPhubKAAGTJN9ZIPvuighabuthiwhnzupzupwhnzupzupPIPJN9cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=*UYG

Чтобы найти такие проблемывсегда полезно удалить exit и включить echo on.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...