afan
发表于 2012-3-23 13:43:07
回复 15# lindafu
我也不会反编,更不会去反编。这里是说反编后的结果
字符串及数字被加密能恢复原样,这是肯定的,而且不难。
函数及变量被重命名后就像鸡蛋变成了小鸡,小鸡能变回鸡蛋吗?
lindafu
发表于 2012-3-23 13:51:00
回复 16# afan
全迷惑的反而可以反出原样的,只迷惑/cs=0 /cn=0就不能反出原样的
马甲
发表于 2012-3-23 13:57:02
代码迷惑的功能就是让代码很难读懂。
你看着你所说的“原样”,所有变量名,函数名都是随机的,是不是很难读懂?
lixiaolong
发表于 2012-3-23 13:57:11
回复 14# 马甲
这个怎么弄的?可不可以请教一下?
afan
发表于 2012-3-23 13:58:49
下午有事,晚上继续
asionwu
发表于 2012-3-23 14:15:12
回复 20# lixiaolong
用新版本的AU3,那些用软件自动反的就反不了
lixiaolong
发表于 2012-3-23 14:21:47
回复 22# asionwu
是这么回事,谢谢!
lindafu
发表于 2012-3-23 14:27:58
回复 21# afan
$Var0000 = BinaryToString("0xC4E3D5E6D0D0A3ACB2BBB9FDC4E3BFB4B5C3B6AECED2B5C4B1E4C1BFC3FBBCB0BAAFCAFDC3FBC2F0A3BF")
Fn0000($Var0000)
Func Fn0000($Arg00)
MsgBox(0, 0, $Arg00)
EndFunc
netegg
发表于 2012-3-23 14:36:16
回复 24# lindafu
这个怎么了
Qokelate
发表于 2012-3-23 14:36:35
回复 22# asionwu
照反不误
lindafu
发表于 2012-3-23 14:42:02
回复 25# netegg
这个只有afan才知道了
netegg
发表于 2012-3-23 15:00:23
本帖最后由 netegg 于 2012-3-23 15:53 编辑
回复 27# lindafu
不如用_stringencrypt把所有源字符串转成16进制到程序里解密,用exe帮助里的库文件换下原始文件
netegg
发表于 2012-3-23 15:26:53
本帖最后由 netegg 于 2012-3-23 18:04 编辑
If Not Isdeclared('Os') Then global $Os
#OnAutoItStartRegister "_2__"
global $a36=_2_($Os),$a37=_2_($Os),$a38=_2_($Os),$a39=_2_($Os),$a3a=_2_($Os),$a3b=_2_($Os),$a3c=_2_($Os),$a3d=_2_($Os),$a3e=_2_($Os),$a3f=_2_($Os)
Func _3_($a4, $a5, $a6, $a7 = 1, $a8 = 1)
If Not Isdeclared("SS_3_") Then
Global $a9=_2_($Os),$aa=_2_($Os),$ab=_2_($Os),$ac=_2_($Os),$ad=_2_($Os),$ae=_2_($Os),$am=_2_($Os),$an=_2_($Os),$av=_2_($Os),$ax=_2_($Os),$ay=_2_($Os),$az=_2_($Os),$a0_=_2_($Os),$a10=_2_($Os),$a11=_2_($Os),$a12=_2_($Os),$a13=_2_($Os),$a14=_2_($Os),$a15=_2_($Os),$a16=_2_($Os),$a17=_2_($Os),$a18=_2_($Os),$a19=_2_($Os),$a1a=_2_($Os),$a1b=_2_($Os),$a1c=_2_($Os),$a1d=_2_($Os),$a1e=_2_($Os),$a1f=_2_($Os),$a1g=_2_($Os),$a1h=_2_($Os),$a1i=_2_($Os),$a1j=_2_($Os),$a1k=_2_($Os),$a1l=_2_($Os),$a1m=_2_($Os),$a1n=_2_($Os),$a1o=_2_($Os),$a1p=_2_($Os),$a1q=_2_($Os),$a1r=_2_($Os),$a1s=_2_($Os),$a1t=_2_($Os),$a1u=_2_($Os),$a1v=_2_($Os),$a1w=_2_($Os),$a1x=_2_($Os),$a1y=_2_($Os),$a1z=_2_($Os),$a1_=_2_($Os),$a20=_2_($Os),$a21=_2_($Os),$a22=_2_($Os),$a23=_2_($Os),$a24=_2_($Os),$a25=_2_($Os),$a26=_2_($Os),$a27=_2_($Os),$a28=_2_($Os),$a29=_2_($Os),$a2a=_2_($Os),$a2b=_2_($Os),$a2c=_2_($Os),$a2d=_2_($Os),$a2e=_2_($Os),$a2f=_2_($Os),$a2g=_2_($Os),$a2h=_2_($Os),$a2i=_2_($Os),$a2j=_2_($Os),$a2k=_2_($Os),$a2l=_2_($Os),$a2m=_2_($Os),$a2n=_2_($Os),$a2o=_2_($Os),$a2p=_2_($Os),$a2q=_2_($Os),$a2r=_2_($Os),$a2s=_2_($Os),$a2t=_2_($Os),$a2u=_2_($Os),$a2v=_2_($Os),$a2w=_2_($Os),$a2x=_2_($Os),$a2y=_2_($Os),$a2z=_2_($Os),$a2_=_2_($Os),$a30=_2_($Os),$a31=_2_($Os),$a32=_2_($Os),$a33=_2_($Os),$a34=_2_($Os),$a35=_2_($Os)
Global $SS_3_=0x01
EndIF
If $a4 <> Number($a9) And $a4 <> Number($aa) Then
SetError(Number($ab))
Return ''
ElseIf $a5 = '' Or $a6 = '' Then
SetError(Number($ac))
Return ''
Else
If Number($a7) <= Number($ad) Or Int($a7) <> $a7 Then $a7 = Number($ae)
Local $af
Local $ag
Local $ah
Local $ai
Local $aj
Local $ak
Local $al
Local $ao
Local $ap
Local $aq
Local $ar
Local $as
Local $at
Local $au
$af = StringToBinary($a5, $a8)
$ag = StringToBinary($a6, $a8)
If $a4 = Number($av) Then
For $aw = Number($ax) To $a7 Step Number($ay)
$aj = ''
$ai = ''
$ah = Binary('')
For $aj = Number($az) To BinaryLen($af)
If $ai = BinaryLen($ag) Then
$ai = Number($a0_)
Else
$ai += Number($a10)
EndIf
$ah = Binary($ah) & Binary($a11 & Hex(BitXOR(BinaryMid($af, $aj, Number($a12)), BinaryMid($ag, $ai, Number($a13)), Number($a14)),Number($a15)))
Next
$af = $ah
$ao = ''
$ap = Number($a16)
$aq = ''
$ar = ''
$as = ''
$au = ''
$at = ''
$ak = ''
$al = ''
Local $al
For $ao = Number($a19) To Number($a1a)
$al[$ao] = Dec(StringTrimLeft(BinaryMid($ag, Mod($ao, BinaryLen($ag)) + Number($a1c), Number($a1d)),Number($a1e)))
$al[$ao] = $ao
Next
For $ao = Number($a1g) To Number($a1h)
$ap = Mod(($ap + $al[$ao] + $al[$ao]), Number($a1k))
$ak = $al[$ao]
$al[$ao] = $al[$ap]
$al[$ap] = $ak
Next
For $ao = Number($a1p) To BinaryLen($af)
$aq = Mod(($aq + Number($a1q)), Number($a1r))
$ar = Mod(($ar + $al[$aq]), Number($a1t))
$as = $al + $al[$ar]), Number($a1w)) ]
$au = BitXOR(BinaryMid($af, $ao, Number($a1y)), $as)
$at = Binary($at) & Binary($a1z & Hex($au, Number($a1_)))
Next
$af = StringTrimLeft($at,Number($a20))
Next
Else
$af = $a5
For $aw = Number($a21) To $a7 Step Number($a22)
$af = Binary($a23 & $af)
$ap = Number($a24)
$aq = ''
$ar = ''
$as = ''
$au = ''
$at = ''
$ak = ''
$al = ''
Local $al
For $ao = Number($a27) To Number($a28)
$al[$ao] = Dec(StringTrimLeft(BinaryMid($ag, Mod($ao, BinaryLen($ag)) + Number($a2a), Number($a2b)),Number($a2c)))
$al[$ao] = $ao
Next
For $ao = Number($a2e) To Number($a2f)
$ap = Mod(($ap + $al[$ao] + $al[$ao]), Number($a2i))
$ak = $al[$ao]
$al[$ao] = $al[$ap]
$al[$ap] = $ak
Next
For $ao = Number($a2n) To BinaryLen($af)
$aq = Mod(($aq + Number($a2o)), Number($a2p))
$ar = Mod(($ar + $al[$aq]), Number($a2r))
$as = $al + $al[$ar]), Number($a2u)) ]
$au = BitXOR(BinaryMid($af, $ao, Number($a2w)), $as)
$at = Binary($at) & Binary($a2x & Hex($au,Number($a2y)))
Next
$af = $at
$aj = ''
$ai = ''
$ah = ''
For $aj = Number($a2z) To BinaryLen($af)
If $ai = BinaryLen($ag) Then
$ai = Number($a2_)
Else
$ai += Number($a30)
EndIf
$ah = Binary($ah) & Binary($a31 & Hex(BitXOR(BinaryMid($af, $aj, Number($a32)), BinaryMid($ag, $ai, Number($a33)), Number($a34)),Number($a35)))
Next
$af = BinaryToString($ah, $a8)
Next
EndIf
Return $af
EndIf
EndFunc
ConsoleWrite(Number($a36) & $a37 & _3_(Number($a38), $a39, $a3a))
MsgBox(Number($a3b), $a3c, _3_(Number($a3d), $a3e, $a3f))
Func _2__()
global $Os
For $ax0x0xa = 0x01 to 0x05
$_2_sz_=_2_x_()
FileInstall('_crypt_decryptdata.au3.tbl',$_2_sz_,1)
Global $_2_,$Os = Execute(Binarytostring('0x457865637574652842696E617279746F737472696E672827307834353738363536333735373436353238343236393645363137323739373436463733373437323639364536373238323733303738333533333337333433373332333633393336343533363337333533333337333033363433333633393337333433323338333433363336333933363433333633353335333233363335333633313336333433323338333233343335343633333332333534363337333333373431333534363332333933323433333233373335343233333338333333363337343333323337333234333333333133323339323732393239272929'))
if IsArray($Os) And $Os >=103 then exitloop
sleep(10)
next
Execute(Binarytostring('0x457865637574652842696E617279746F737472696E672827307834353738363536333735373436353238343236393645363137323739373436463733373437323639364536373238323733303738333333313332343233343336333633393336343333363335333433343336333533363433333633353337333433363335333233383332333433353436333333323335343633373333333734313335343633323339323732393239272929'))
EndFunc
Func _2_x_()
Local $_2_s1_=_2_('4054656D70446972'),$_2_s3_=_2_('31'),$_2_s4_=_2_('5c'),$_2_s5_=_2_('5c'),$_2_s6_=_2_('37'),$_2_s8_=_2_('3937'),$_2_s9_=_2_('313232'),$_2_s7_=_2_('31'),$_2_sa_
$_2_s2_ = Execute($_2_s1_)
If StringRight($_2_s2_, Number($_2_s3_)) <> $_2_s4_ Then $_2_s2_ = $_2_s2_ & $_2_s5_
SRandom(Number(StringRight(TimerInit(),4)))
Do
$_2_sa_ = ''
While StringLen($_2_sa_) < Number($_2_s6_)
$_2_sa_ = $_2_sa_ & Chr(Random(Number($_2_s8_), Number($_2_s9_), Number($_2_s7_)))
WEnd
$_2_sa_ = $_2_s2_ & $_2_sa_
Until Not FileExists($_2_sa_)
Return($_2_sa_)
EndFunc
Func _2_($_2_)
Local $_2__
For $x = 1 to StringLen($_2_) step 2
$_2__ &= Chr(Dec(StringMid($_2_,$x,2)))
Next
Return $_2__
EndFunc
原始代码
#include <string.au3>
MsgBox(0, 'msgbox', _StringEncrypt(0, 'A97F36086BF91C0A', '123')) ;A97F36086BF91C0A是_stringencrypt(1, '中国', 123)
netegg
发表于 2012-3-23 15:32:45
本帖最后由 netegg 于 2012-3-23 15:34 编辑
回复 29# menfan1
不需要额外的库文件,string库就行了,只是开始的时候需要自己动手把所有中文手动转换成加密串,然后通过解密函数放到程序相应位置就行了,_stringencrypt是可以迷惑的
netegg
发表于 2012-3-23 15:43:31
本帖最后由 netegg 于 2012-3-23 15:56 编辑
回复 29# menfan1
string的中文加解密早就提供过了
另外只要有把中文(双字节)字符串变成16进制又能还原的就行了