2011-10-06 37 views
2

我试图让我自己的.dll文件加密。 但它不会像我想要的那样工作也可以annyone帮助。我有一个概率与字符串替换


@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

我希望它接受输入并将其改为例如a = QUE,所以它不能被读取,但对于一些共鸣文件只是关闭它使得文件,但是当我打开它时,它显示了我输入的内容。所以吝啬地说应该引用我的输入并将其写入文件。 PS:这必须工作在所有文本数字和叹息,我希望它,如果我可以改变空间和进入,但这个字符串替换对我来说是新的:P thx提前,亨利 – user981400

回答

0

首先,完整的想法是好的,但不值钱,因为它不能与批独自完成。
至少你不能读批量的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

1

老实说,我不确定代码片段的用途。首先,重定向>将清除dll文件的所有内容。接下来,我怀疑在第一个回显之后,set块中的任何命令都有机会执行。当然,%lol%变量永远不会在块内获得值,除非启用delayedexpansion,否则将在执行set块内的任何操作之前对其进行评估。尝试enabling delayedexpansion.

把这个顶:

​​

,并限定所有%VAR%的为VAR!

希望这篇文章能给你一些启动,让你达到目标。

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