Qokelate 发表于 2013-5-2 16:38:43

Au3 防反编译器

本帖最后由 Qokelate 于 2013-5-6 14:14 编辑


   目前可以兼容于官方和ACN的版本,如有其它民间版本请自测,不保证有效

能逃过大分部常见的反编译工具(反编译工具仍然能反,只是反出来的不是真实源码),   用法   放AutoIt安装目录调用    Au3_Compiler.exe<AU3 文件> [图标文件]

例   Au3_Compiler.exe c:\a.au3 c:\aaa.ico

内置代码精简功能(调用迷惑的精简功能),因此过大的文件可能会导致精简时间漫长~~~~~

如果发现编译后不能运行,请重新编译一下看是否正常(理论上每次编译得到的EXE都是不一样的),确认不能正常工作请上传 %TEMP%\Au3_Compiler.exe.log 并报告BUG,我会尽快的检查修正

内置自动处理全局常量重复声明问题,但也带来了新的小问题,见BUG1


   出于某些因素考虑,请保证同时只有一个 Au3_Compiler.exe 在运行, 以保证最佳效果

   如果你的工具能把 http://www.autoitx.com/thread-38265-1-1.html 这个例子反出来,那么恭喜你,你不用下载了,因为也许对你没有效果,当然我也很乐意了解你的工具是如何工作的(如果你愿意的话)^_^

   在被编译的Au3文件中添加以下设置可以改变默认的设置,大部分编译失败都是AutoItDir目录获取不正确(每个人的安装情况不一定相同),当然也可以使用默认

#cs
       
        # 指定AutoIt安装目录,留空为读取注册表路径
        AutoItDir=D:\xTool\AutoIt
       
        # 指定EXE图标文件,仅当参数未指定ICON文件时有效
        ICON=D:\xTool\AutoIt\Qiu.ico
       
        # 是否使用代码迷惑 0/1,默认1
        MaxProtect=1
       
        # 是否使用UPX压缩 0/1,默认1
        UPX=1
#ce

读取注册表如下路径

       RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'ChmDir')
       RegRead('HKLM\SOFTWARE\Wow6432Node\AutoIt v3\AutoIt', 'ChmDir')

需要如下目录结构
   

AutoIt\Aut2Exe\Aut2Exe.exe
AutoIt\SciTe\Obfuscator\Obfuscator.exe

Min 版删了,没什么用



已知BUG:

1.如果在全局代码区域使用类似如下结构的常量声明,将可能出错

                if XXXXX then
                           global const $XXXX
                  Else
                           global const $XXXX
                endif

原因是内置的常量检查会把后面的声明删掉(过多的在全局使用代码不是一个好习惯)

angelink 发表于 2013-5-2 16:41:38

回复一个,居然要我打8个字。

冷风无泪 发表于 2013-5-2 16:42:00

前排支持下!

xyhqqaa 发表于 2013-5-2 16:43:06

大哥,你下载要钱。。{:face (361):}

lessf 发表于 2013-5-2 16:43:12

防反编的,必须支持!!顶你!

Qokelate 发表于 2013-5-2 16:47:47

回复 4# xyhqqaa


    论坛征税,不关我事,找老潇论理去

392861168 发表于 2013-5-2 21:35:14

防反编的,必须支持!!顶你!

proteus 发表于 2013-5-2 21:44:56

部份源码Local $SZTEMPAU3 = AU3FILEMAKERADOMCODE()
Local $SZEXE = MAKETEMPFILENAMEWITHMD5($SZFILEAU3, ".exe")
AU3FILEMAKEEXEFILE($SZTEMPAU3, $SZEXE, $SZICON)

Func AU3TEXTMAKERANDOMCODE($DWLENGTH = Default)
        Local $SZBINARY = ""
        $SZBINARY &= "#NoTrayICON" & @CRLF
        $SZBINARY &= 'MsgBox(16,"AutoIt v3","Error allocating memory.")' & @CRLF
        $SZBINARY &= "Exit" & @CRLF
        Return SetError(0, $DWLENGTH, $SZBINARY)
EndFunc   ;==>AU3TEXTMAKERANDOMCODE

Func AU3FILEMAKERADOMCODE($SZFILE = Default)
        If Default = $SZFILE Then $SZFILE = MAKETEMPFILENAME(".au3")
        Local $STR_CODE = AU3TEXTMAKERANDOMCODE()
        OVERWRITEFILE($SZFILE, $STR_CODE)
        Return $SZFILE
EndFunc   ;==>AU3FILEMAKERADOMCODE

Qokelate 发表于 2013-5-2 21:50:03

回复 8# proteus


很JB强大
    {:face (207):}

lpxx 发表于 2013-5-2 23:10:39

看看和老鬼那个相比效果怎样。

cvwyg 发表于 2013-5-2 23:24:07

如果上面那种情况(全局变量)怎么办呢~?

Qokelate 发表于 2013-5-2 23:35:58

回复 11# cvwyg


    放在函数中处理,只影响全局代码区域的常量,不影响函数内部
AAA()
Func AAA()
if XXXXX then
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX
else
XXXXXXXXXXXXXXX
XXXXXXXXXX
endif
endfunc

Qokelate 发表于 2013-5-2 23:38:20

回复 10# lpxx


    谁是老鬼?能给个下载链接否?   也许可以参考参考

cvwyg 发表于 2013-5-2 23:39:27

回复 12# Qokelate


    了解了~!谢谢~!

楼上风云 发表于 2013-5-2 23:49:03

回复 1# Qokelate

下载了测试
页: [1] 2 3 4 5 6
查看完整版本: Au3 防反编译器