2011-10-06 12 views
2

.dllファイルのために私自身の暗号化をしようとしています。 しかし、私はそれもあまりにもannyoneのヘルプをしたいように動作しません。バストで置換する文字列を持つprobを持っています


@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:[email protected]@% 
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 

+1

"でも、私もそれが欲しいと思うように動かないだろう" - そしてどうしたらいいの? (1)問題を示す最小限のコードサンプル、(2)何がしているのか、 (3)あなたが何をすべきかを予測する。 – paxdiablo

+0

私はそれが入力を取って、それを読み取ることができないように例えば= QUEのように変更したいが、いくつかの共鳴についてはファイルを閉じるだけでファイルを作るが、私がそれを開いたときには、だからsiplyは私の入力を暗号化してファイルに書き込むべきだと言った。 PS:これは、スペースを変更して入力することもできますが、この文字列の置換は新しいものです:P thx in Henry – user981400

答えて

0

、それだけでは一括で行うことができないように、まず完全なアイデアは、いいが無価値です。
少なくとも、バッチでNUL(0x00)文字を読み取ることはできません。

なぜコードが動作しないのかは、複数の理由がありますが、同時に書き込む際にtest.dllから読み込むと、どのように動作するのでしょうか?

あなたのコードでは特殊文字は扱えません。バッチでは可能ですが、扱いにくいです。

set f1=%f1:*=MAL%は、このように1つの星を置き換えることはできないため、機能しません。
set f1=%f1:==SC}%set f1=%f1:~=CV7% も同じ理由で失敗します。

set f1=%f1:%=VQE%f1は常に=VQEとなり、内容はf1とは独立しています。あなたはこれらの行を削除

場合でも、あなたの翻訳は、それは常にexitを削除することをお勧めしますこのような問題を見つけるには

ZIPhubKAAGTJN9ZIPvuighabuthiwhnzupzupwhnzupzupPIPJN9cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=*UYG

の出力に各文字を複数回、入力a結果を翻訳し、 echo onを有効にします。

1

正直なところ、私はコードスニペットで何を意図しているのか分かりません。まず、>のリダイレクトは、dllファイルのすべての内容を消去します。次に、最初のエコーが実行するチャンスを得た後、セットブロック内のコマンドのいずれかが疑わしい。確かに、%lol%変数はブロック内で決して値を取得しません。遅延拡張が有効にされていない限り、setブロック内で何かを実行する前に評価されます。

​​

をし、VARにすべて%VAR%さんを修飾:上にこのenabling delayedexpansion.

入れてみてください!の!

希望すれば、この投稿は、あなたがあなたが何であるかを達成するためにあなたに何らかのスタートを与えることができます。

0

私はそれが固定以上壊れていますかどうかわからないんだけど、私はこの出力にそれを得た:再び

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

、ではない、それは働いていたかいないかどうかわからが、私は使用をした:

​​

これを元に戻す方法はありますか?

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:[email protected]@% 
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

EnableDelayedExpansionがどのように変わると思いますか?あなたはそれを使用しません。 – jeb

+0

ええ、私はそれを使っていくつかのテストをしましたが、後でそれを取り除くことを忘れました。 – rud3y

関連する問題