Jump to content
RTFC

CodeCrypter - Encrypt your Script

Recommended Posts

not show GUI my os xp pro sp3....

My Script.......

;AutoIt v3.3.12.0
#NoTrayIcon

Global Const $GUI_EVENT_CLOSE = -3

$GUI = GUICreate("UPX Packer", 335, 121)
GUISetBkColor(0xFFFFFF)
$Input1 = GUICtrlCreateInput("", 80, 16, 153, 21)
$Label1 = GUICtrlCreateLabel("Source", 16, 16, 38, 17)
$Button1 = GUICtrlCreateButton(".........", 240, 16, 75, 25)
$Input2 = GUICtrlCreateInput("", 80, 48, 153, 21)
$Button2 = GUICtrlCreateButton(".........", 240, 48, 75, 25)
$Label2 = GUICtrlCreateLabel("Destination", 16, 48, 57, 17)
$Button3 = GUICtrlCreateButton("Pack", 120, 80, 75, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Encrypt Script......

#NoTrayIcon
Global Const $83CAF935CF4A87C1 = 4096
Global Const $83CAF965FF4A87C1 = 64
Global Const $83CAF968CF4A87C1 = 32768

Func _83CAF905CF4A87C1($83CAF9657F4A87C1,$83CAF965C44A87C1,$83CAF565CF4A87C1,$83CAF965C64A87C1)
    Local $83CAFB65CF4A87C1=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$83CAF9657F4A87C1,"ulong_ptr",$83CAF965C44A87C1,"dword",$83CAF565CF4A87C1,"dword",$83CAF965C64A87C1)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $83CAFB65CF4A87C1[0]
EndFunc

Func _83CAF985CF4A87C1($83CAF9657F4A87C1,$83CAF965C44A87C1,$83CAF165CF4A87C1)
    Local $83CAFB65CF4A87C1=DllCall("kernel32.dll","bool","VirtualFree","ptr",$83CAF9657F4A87C1,"ulong_ptr",$83CAF965C44A87C1,"dword",$83CAF165CF4A87C1)
    If @error  Then Return SetError(@error,@extended, False )
    Return $83CAFB65CF4A87C1[0]
EndFunc
Global $83CAF965EF4A87C1
Global $83CAF9659F4A87C1
Global $83CAFA65CF4A87C1
Global $83CAF965CE4A87C1
Global $83CAF9655F4A87C1
Global $83CAF9C5CF4A87C1
Global $83CAF995CF4A87C1
Global $83CAF965C14A87C1
Global $83CAF965C74A87C1
Global $83CAF9D5CF4A87C1
Global $83CAF961CF4A87C1
Global $83CAF965CB4A87C1
Global $83CAF9656F4A87C1
Global $83CAF965C84A87C1
Global Const $83CAF960CF4A87C1 = 0
Global Const $83CAF96BCF4A87C1 = 1
Global Const $83CAF96CCF4A87C1 = 2

Func _83CAF965CF1A87C1()
    $83CAF965EF4A87C1= 0
    _83CAF985CF4A87C1($83CAF9659F4A87C1, 0 ,$83CAF968CF4A87C1)
EndFunc

Func _83CAF965CFAA87C1()
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then
    If @AutoItX64  Then
    Local $83CAF9652F4A87C1="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA="
    Else
    Local $83CAF9652F4A87C1="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqFEZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LMFnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx"
    $83CAF9652F4A87C1&="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"
    $83CAF9652F4A87C1&="EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA="
    EndIf
    Local $83CAF665CF4A87C1=String(_83CAE965CF4A87C1($83CAF9652F4A87C1))
    $83CAFA65CF4A87C1=(StringInStr($83CAF665CF4A87C1,"87DB")- 3 )/ 2
    $83CAF965CE4A87C1=(StringInStr($83CAF665CF4A87C1,"87C9")- 3 )/ 2
    $83CAF9655F4A87C1=(StringInStr($83CAF665CF4A87C1,"87D2")- 3 )/ 2
    $83CAF9C5CF4A87C1=(StringInStr($83CAF665CF4A87C1,"87F6")- 3 )/ 2
    $83CAF995CF4A87C1=(StringInStr($83CAF665CF4A87C1,"09C0")- 3 )/ 2
    $83CAF965C14A87C1=(StringInStr($83CAF665CF4A87C1,"09DB")- 3 )/ 2
    $83CAF965C74A87C1=(StringInStr($83CAF665CF4A87C1,"09C9")- 3 )/ 2
    $83CAF9D5CF4A87C1=(StringInStr($83CAF665CF4A87C1,"09D2")- 3 )/ 2
    $83CAF961CF4A87C1=(StringInStr($83CAF665CF4A87C1,"09F6")- 3 )/ 2
    $83CAF965CB4A87C1=(StringInStr($83CAF665CF4A87C1,"09FF")- 3 )/ 2
    $83CAF9656F4A87C1=(StringInStr($83CAF665CF4A87C1,"09E4")- 3 )/ 2
    $83CAF965C84A87C1=(StringInStr($83CAF665CF4A87C1,"09ED")- 3 )/ 2
    $83CAF665CF4A87C1=Binary($83CAF665CF4A87C1)
    $83CAF9659F4A87C1=_83CAF905CF4A87C1( 0 ,BinaryLen($83CAF665CF4A87C1),$83CAF935CF4A87C1,$83CAF965FF4A87C1)
    $83CAF965EF4A87C1=DllStructCreate("byte["&BinaryLen($83CAF665CF4A87C1)&"]",$83CAF9659F4A87C1)
    DllStructSetData($83CAF965EF4A87C1, 1 ,$83CAF665CF4A87C1)
    OnAutoItExitRegister("_83CAF965CF1A87C1")
    EndIf
EndFunc

Func _83CAF965CFFA87C1($83CAF96ACF4A87C1)
    $83CAF96ACF4A87C1=Binary($83CAF96ACF4A87C1)
    Switch BinaryLen($83CAF96ACF4A87C1)
    Case 0 To 16
    Local $83CAF969CF4A87C1= 16
    Case 17 To 24
    Local $83CAF969CF4A87C1= 24
    Case Else
    Local $83CAF969CF4A87C1= 32
    EndSwitch
    Local $83CAFE65CF4A87C1=DllStructCreate("byte["&$83CAF969CF4A87C1&"]")
    DllStructSetData($83CAFE65CF4A87C1, 1 ,$83CAF96ACF4A87C1)
    Return DllStructGetData($83CAFE65CF4A87C1, 1 )
EndFunc

Func _83CA7965CF4A87C1($83CAF96ACF4A87C1)
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then _83CAF965CFAA87C1()
    $83CAF96ACF4A87C1=_83CAF965CFFA87C1($83CAF96ACF4A87C1)
    Local $83CAF965C34A87C1=DllStructCreate("byte[244]")
    Local $83CAF965BF4A87C1=DllStructCreate("byte["&BinaryLen($83CAF96ACF4A87C1)&"]")
    DllStructSetData($83CAF965BF4A87C1, 1 ,$83CAF96ACF4A87C1)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF965EF4A87C1)+$83CAF9655F4A87C1,"ptr",DllStructGetPtr($83CAF965C34A87C1),"ptr",DllStructGetPtr($83CAF965BF4A87C1),"uint",BinaryLen($83CAF96ACF4A87C1)* 8 ,"int", 0 )
    Return $83CAF965C34A87C1
EndFunc

Func _83CAF965CF5A87C1($83CAF96ACF4A87C1)
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then _83CAF965CFAA87C1()
    $83CAF96ACF4A87C1=_83CAF965CFFA87C1($83CAF96ACF4A87C1)
    Local $83CAF965C34A87C1=DllStructCreate("byte[244]")
    Local $83CAF965BF4A87C1=DllStructCreate("byte["&BinaryLen($83CAF96ACF4A87C1)&"]")
    DllStructSetData($83CAF965BF4A87C1, 1 ,$83CAF96ACF4A87C1)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF965EF4A87C1)+$83CAF9C5CF4A87C1,"ptr",DllStructGetPtr($83CAF965C34A87C1),"ptr",DllStructGetPtr($83CAF965BF4A87C1),"uint",BinaryLen($83CAF96ACF4A87C1)* 8 ,"int", 0 )
    Return $83CAF965C34A87C1
EndFunc

Func _83CAF965CF7A87C1(ByRef $83CAF965C34A87C1, ByRef $83CAF765CF4A87C1,$83CAF965AF4A87C1)
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then _83CAF965CFAA87C1()
    If NOT IsDllStruct($83CAF965C34A87C1)  Then Return SetError( 1 , 0 ,Binary(""))
    $83CAF965AF4A87C1=Binary($83CAF965AF4A87C1)
    Local $83CAFD65CF4A87C1=Ceiling(BinaryLen($83CAF965AF4A87C1)/ 16 )* 16
    If $83CAFD65CF4A87C1= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $83CAF965CD4A87C1=DllStructCreate("byte["&$83CAFD65CF4A87C1&"]")
    DllStructSetData($83CAF965CD4A87C1, 1 ,$83CAF965AF4A87C1)
    Local $83CAF965CA4A87C1=DllStructCreate("byte[16]")
    DllStructSetData($83CAF965CA4A87C1, 1 ,$83CAF765CF4A87C1)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF965EF4A87C1)+$83CAF9D5CF4A87C1,"ptr",DllStructGetPtr($83CAF965C34A87C1),"ptr",DllStructGetPtr($83CAF965CD4A87C1),"uint",$83CAFD65CF4A87C1,"ptr",DllStructGetPtr($83CAF965CA4A87C1))
    $83CAF765CF4A87C1=DllStructGetData($83CAF965CA4A87C1, 1 )
    Return DllStructGetData($83CAF965CD4A87C1, 1 )
EndFunc

Func _83CA3965CF4A87C1(ByRef $83CAF965C34A87C1, ByRef $83CAF765CF4A87C1,$83CAF965AF4A87C1)
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then _83CAF965CFAA87C1()
    If NOT IsDllStruct($83CAF965C34A87C1)  Then Return SetError( 1 , 0 ,Binary(""))
    $83CAF965AF4A87C1=Binary($83CAF965AF4A87C1)
    Local $83CAFD65CF4A87C1=BinaryLen($83CAF965AF4A87C1)
    If $83CAFD65CF4A87C1= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $83CAF965CD4A87C1=DllStructCreate("byte["&$83CAFD65CF4A87C1&"]")
    DllStructSetData($83CAF965CD4A87C1, 1 ,$83CAF965AF4A87C1)
    Local $83CAF965CA4A87C1=DllStructCreate("byte[16]")
    DllStructSetData($83CAF965CA4A87C1, 1 ,$83CAF765CF4A87C1)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF965EF4A87C1)+$83CAF965CB4A87C1,"ptr",DllStructGetPtr($83CAF965C34A87C1),"ptr",DllStructGetPtr($83CAF965CD4A87C1),"uint",$83CAFD65CF4A87C1,"ptr",DllStructGetPtr($83CAF965CA4A87C1))
    $83CAF765CF4A87C1=DllStructGetData($83CAF965CA4A87C1, 1 )
    Return DllStructGetData($83CAF965CD4A87C1, 1 )
EndFunc

Func _83CAF965C54A87C1(ByRef $83CAF965C34A87C1, ByRef $83CAF765CF4A87C1,$83CAF965AF4A87C1)
    If NOT IsDllStruct($83CAF965EF4A87C1)  Then _83CAF965CFAA87C1()
    If NOT IsDllStruct($83CAF965C34A87C1)  Then Return SetError( 1 , 0 ,Binary(""))
    $83CAF965AF4A87C1=Binary($83CAF965AF4A87C1)
    Local $83CAFD65CF4A87C1=BinaryLen($83CAF965AF4A87C1)
    If $83CAFD65CF4A87C1= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $83CAF965CD4A87C1=DllStructCreate("byte["&$83CAFD65CF4A87C1&"]")
    DllStructSetData($83CAF965CD4A87C1, 1 ,$83CAF965AF4A87C1)
    Local $83CAF965CA4A87C1=DllStructCreate("byte[16]")
    DllStructSetData($83CAF965CA4A87C1, 1 ,$83CAF765CF4A87C1)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF965EF4A87C1)+$83CAF9656F4A87C1,"ptr",DllStructGetPtr($83CAF965C34A87C1),"ptr",DllStructGetPtr($83CAF965CD4A87C1),"uint",$83CAFD65CF4A87C1,"ptr",DllStructGetPtr($83CAF965CA4A87C1))
    $83CAF765CF4A87C1=DllStructGetData($83CAF965CA4A87C1, 1 )
    Return DllStructGetData($83CAF965CD4A87C1, 1 )
EndFunc

Func _83CA9965CF4A87C1(ByRef $83CAF965C34A87C1, ByRef $83CAF765CF4A87C1,$83CAF965AF4A87C1)
    $83CAF965AF4A87C1=_83CAF965CF7A87C1($83CAF965C34A87C1,$83CAF765CF4A87C1,$83CAF965AF4A87C1)
    Local $83CAFD65CF4A87C1=BinaryLen($83CAF965AF4A87C1)
    For $83CAF265CF4A87C1=$83CAFD65CF4A87C1 To $83CAFD65CF4A87C1- 16 Step -1
    If BinaryMid($83CAF965AF4A87C1,$83CAF265CF4A87C1, 1 )=Binary("0x80")  Then
    Return BinaryMid($83CAF965AF4A87C1, 1 ,$83CAF265CF4A87C1- 1 )
    EndIf
    Next
    Return $83CAF965AF4A87C1
EndFunc

Func _83CAF967CF4A87C1($83CAF96ACF4A87C1,$83CAF965AF4A87C1,$83CAF965C04A87C1=$83CAF960CF4A87C1)
    $83CAF965AF4A87C1=Binary($83CAF965AF4A87C1)
    If BinaryLen($83CAF965AF4A87C1)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $83CAF765CF4A87C1=BinaryMid($83CAF965AF4A87C1, 1 , 16 ),$83CAF965C34A87C1,$83CAF965DF4A87C1
    $83CAF965AF4A87C1=BinaryMid($83CAF965AF4A87C1, 17 )
    Switch String($83CAF965C04A87C1)
    Case "CFB",$83CAF96BCF4A87C1
    $83CAF965C34A87C1=_83CA7965CF4A87C1($83CAF96ACF4A87C1)
    $83CAF965DF4A87C1=_83CA3965CF4A87C1($83CAF965C34A87C1,$83CAF765CF4A87C1,$83CAF965AF4A87C1)
    Case "OFB",$83CAF96CCF4A87C1
    $83CAF965C34A87C1=_83CA7965CF4A87C1($83CAF96ACF4A87C1)
    $83CAF965DF4A87C1=_83CAF965C54A87C1($83CAF965C34A87C1,$83CAF765CF4A87C1,$83CAF965AF4A87C1)
    Case Else
    $83CAF965C34A87C1=_83CAF965CF5A87C1($83CAF96ACF4A87C1)
    $83CAF965DF4A87C1=_83CA9965CF4A87C1($83CAF965C34A87C1,$83CAF765CF4A87C1,$83CAF965AF4A87C1)
    EndSwitch
    If BinaryLen($83CAF965DF4A87C1)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $83CAF965DF4A87C1
EndFunc

Func _83CAE965CF4A87C1($83CAF9652F4A87C1)
    If @AutoItX64  Then
    Local $83CAF665CF4A87C1="0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3"
    Else
    Local $83CAF665CF4A87C1="0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3"
    EndIf
    Local $83CAF945CF4A87C1=(StringInStr($83CAF665CF4A87C1,"89C0")- 3 )/ 2
    Local $83CAF96DCF4A87C1=(StringInStr($83CAF665CF4A87C1,"89D2")- 3 )/ 2
    Local $83CAF365CF4A87C1=(StringInStr($83CAF665CF4A87C1,"89F6")- 3 )/ 2
    $83CAF665CF4A87C1=Binary($83CAF665CF4A87C1)
    Local $83CAF9B5CF4A87C1=_83CAF905CF4A87C1( 0 ,BinaryLen($83CAF665CF4A87C1),$83CAF935CF4A87C1,$83CAF965FF4A87C1)
    Local $83CAF065CF4A87C1=DllStructCreate("byte["&BinaryLen($83CAF665CF4A87C1)&"]",$83CAF9B5CF4A87C1)
    DllStructSetData($83CAF065CF4A87C1, 1 ,$83CAF665CF4A87C1)
    Local $83CAF9651F4A87C1=DllStructCreate("byte[16]")
    Local $83CAF965C24A87C1=StringLen($83CAF9652F4A87C1)
    Local $83CAF96FCF4A87C1=DllStructCreate("byte["&$83CAF965C24A87C1&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($83CAF065CF4A87C1)+$83CAF96DCF4A87C1,"ptr",DllStructGetPtr($83CAF9651F4A87C1),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($83CAF065CF4A87C1)+$83CAF365CF4A87C1,"str",$83CAF9652F4A87C1,"uint",$83CAF965C24A87C1,"ptr",DllStructGetPtr($83CAF96FCF4A87C1),"ptr",DllStructGetPtr($83CAF9651F4A87C1))
    Local $83CAF966CF4A87C1=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($83CAF96FCF4A87C1)), 1 )
    Local $83CAF915CF4A87C1=DllStructCreate("byte["&($83CAF966CF4A87C1+ 16 )&"]")
    Local $83CAF965DF4A87C1=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($83CAF065CF4A87C1)+$83CAF945CF4A87C1,"ptr",DllStructGetPtr($83CAF96FCF4A87C1)+ 4 ,"ptr",DllStructGetPtr($83CAF915CF4A87C1),"int", 0 ,"int", 0 )
    _83CAF985CF4A87C1($83CAF9B5CF4A87C1, 0 ,$83CAF968CF4A87C1)
    Return BinaryMid(DllStructGetData($83CAF915CF4A87C1, 1 ), 1 ,$83CAF965DF4A87C1[ 0 ])
EndFunc

Func _83CAF965CFBA87C1(ByRef $83CAF964CF4A87C1, ByRef $83CAF965CC4A87C1)
    $83CAF964CF4A87C1=$83CAF965CC4A87C1
EndFunc

Func _83CAF965CF3A87C1(ByRef $83CAF964CF4A87C1,$83CAF965CC4A87C1, ByRef $83CAF962CF4A87C1)
    $83CAF964CF4A87C1[$83CAF965CC4A87C1]=$83CAF962CF4A87C1
EndFunc

Func _83CAF965CFCA87C1(ByRef $83CAF964CF4A87C1, ByRef $83CAF965CC4A87C1,$83CAF962CF4A87C1)
    $83CAF964CF4A87C1=$83CAF965CC4A87C1[$83CAF962CF4A87C1]
EndFunc

Func _83CAF9C5CFBA87C1(ByRef $83CAF964CF4A87C1,$83CAF965CC4A87C1, ByRef $83CAF962CF4A87C1,$83CAF465CF4A87C1)
    $83CAF964CF4A87C1[$83CAF965CC4A87C1]=$83CAF962CF4A87C1[$83CAF465CF4A87C1]
EndFunc

Func _83CAF9652C4A87C1(ByRef $83CAF964CF4A87C1,$83CAF9658F4A87C1)
    $83CAF964CF4A87C1=Number($83CAF9658F4A87C1)
EndFunc

Func _83C7F965CF4787C1(ByRef $83CAF964CF4A87C1,$83CAF965CC4A87C1,$83CAF9658F4A87C1)
    $83CAF964CF4A87C1[$83CAF965CC4A87C1]=Number($83CAF9658F4A87C1)
EndFunc
_83CAF965CFAA87C1()
Global $83CA6965CF4A87C1 = 0
Global $83CAF865CF4A87C1[2]
$83CAF865CF4A87C1[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _83CAFC65CF4D87C1(Const $83CAF9654F4A87C1,$83CAFC65CF4A87C1= 0)
    Return BinaryToString(_83CAF967CF4A87C1($83CAF865CF4A87C1[$83CAFC65CF4A87C1],$83CAF9654F4A87C1))
EndFunc
Execute(Execute(_83CAFC65CF4D87C1('0x26A27E457AEC361A48022DE44D6D39FEDD2FF92C0C0896AB42C68D0A0AA23633CC63FA6990DC735B7C2A2E62820B83CA6D7A4EF86D5DCAA21CCB0A027108330F1173B598A2B05BC8F9164E37A22AC2FA3A243F50606D159FDECE6FC3D99020E7E1FEC6C8F0C0BAC9ABF7EEE553BA05390B44502F4FDE9C7C605D49CD56B6DC2760437BCF9168B410D384BBE4791C73F4')))

Func _83CAF965CFB587C1()
    Execute(Execute(_83CAFC65CF4D87C1('0x22BE59E2B57CCC19DFB35151157D3A297D883A8826A12325343C2A2415DB703687DD8B63CE79CE0E6281C4C2A31D63BFC8C018805BCF7D1EC86E7474966AE7278CEC9BC353BB719CE84995974DBBC1A1959521A1C8226155B85DAD0DE1317C2C43E9C1738D05A8D26BB0C44C2A5977FBCB72BEC680D2EA8AB02AE781954B407707C86EAB244F5188C3CAB8432CD0AF45')))
    Execute(Execute(_83CAFC65CF4D87C1('0x70980759F38259996758BEDDCFA4840CFFF7B648C0904E6715084F62F6170D2561A1072686DF17DA2B3BB7635B569E351995E56B1826A0EF8B3CE7093631C2BE5D08B9A03F7CE9B7CD8E5EC6AF75F30C683D62EF0F3CD543EF46442BE1A3D7F570DC0175EE2966F387C2D7EA1EDBDA6BF022AE2C7898DB57900A84224E4E9D5A93B07FB4061C62500143FB569C90ACF7')))
    Local $83CAF964CF4A87C1= 0,$83CAF965CC4A87C1= 1
    Local $83CAF962CF4A87C1[1]
    Execute(Execute(_83CAFC65CF4D87C1('0xDB19F5C7A51C307FE0946FBEF14BBF3F14FD2C17F732A32B40A5CFD27F3D310A5014347AD5E30E8C766A225C0A00680E481FDB03C37DAABBCB4B41DE00D5DF2D14862B8FE9D17CC5BE043BABC1004B7B95BBE8DBA4F3E2C7FD179D5629A82EF33E02BDEA9234DC026557AB25111F12F6B7AC0EA1710A0B6F13D238FC9B84B9A31FF5A5E92BD6197F531327F27A52631CB471874D3CBA8AF3B283A88B8E3BD4DB6FDAF85B873603ADF333AD6C8DCD89DFDDE3EBA81B2538859AE3BEEB91E469601671E78E11EF98F3EFF7A1DA03131C59')))
    Execute(Execute(_83CAFC65CF4D87C1('0x5404C8611090066C2D66E877604632FB27BC003331B7B0BBEF473E26A826CD14A0F05DD1FA706E1CB49936A0A6E33C703C9913D48004006E3B6F8C117040F378856B94A8D75AB15228E457BB08301928CFA5E89E88C389A86BF4209786691B27AE83919033174EE3DA76D7F80097393A9990E67CF8D1EF880C2AEABB461440AE8E5278544AB48DF74218387C07262408342DA30AE377CAF409642A20177C5F6E349D24956C2EBEF06151F7D4FDC6A65B5C3A54EFBC64FF86DD1CA53E2528E30B8A863638D741BEF1568610824C8D0F86')))
    Execute(Execute(_83CAFC65CF4D87C1('0x74CECCBF2C59251072BCC48C966A7F957C789E881B22F730AED33B15ECF26805A14C803C42C672F656221FA040BDEBA5A57DF7602DB00C7F401A5FEBC729D110E6ACF0BA8435A5E51297E1B478DECAE0404D61A5727074F7602A613469393CF084A8A6415F25B216375075EDC2CE45FC93F5517F95291980A3B98BFF4B83F6FEE3C610BA96C53922AA7573F6F2DEAE985DF12D4D2EFE190E25B8B4A85B6D71D2AE62CB7171938C6B90721E8EE77C826169552DE95D805DCD5D7A0B2ECF6B77028C48530B5C7DA6EE8F51D649D1EE2E5168060E6BE520D2BD0FE721CE33B3172D2E0999B2FE24C3D0DF8EA42B784B3CBC')))
    Execute(Execute(_83CAFC65CF4D87C1('0x44110226309182C1E30409F48841FB49592B8897F2E96BDA021FC3AC90909A2D60AD1D863A7C6276604E73D87F955B993C4ED444E83F9A2299D27A47A710CFD043FB5CDE07EA2B3896BC959FFF6198009A94AC068EF5C0887D53FA49496FBB18D2891A2F0F36702664FFEBE0932673CE5A13F2AF7398E555A506CF09800C27FC241BA657964B5E77F1C50547AA03E0092E7D9C360F81BBB81E53457B7640833EDFFEFA78E84687623F1353660FAE25DC0201E367525E35C9289666E2FB521E215257C11CC5BE2893EE55770063ABDE9ECEFEE31260850133A2BFFE5C8DD2E6A843D2370D169B94D71C219C87CA32214A')))
    Execute(Execute(_83CAFC65CF4D87C1('0x1F1E565079CE831F39B70EB5A889D99C614C45999C2B52884F3589B353C8351BFE91615154957ABF334E6380C3437823640618B1EC831917811AF967BB805B92F1F5FF55DC74F7378FADA929A75BA9FF3322A83C778CDB7A819A32A97EEA96FDBFDB191B0440C2445AE7F2E4523818E27D73CDB55351414AD5530E471A8E4787FF72DDDE87144CA3BA8863A4DA40F5F52458028E3E3C030C085A23CF7E33D774A0262FA3C409C6D0C09DF01554992B65')))
    Execute(Execute(_83CAFC65CF4D87C1('0xCDB2813ED4E5D0D78367D9C232F9D0A6782CE43957F6E9FB1F1989FAD5F54593823E48683A0882723B14AB6E1B6DFC647B70A2FF7FDAABD6258A599F0F38B98CB4556833D1666DD519BD5A0CCCC2724E57E92D6430425FDC4D9C6900DA43E623F988F22EBA20A30E55E27DAFDF9C809E6F5CFC66CA7171C503F8C167B724C2C8440B3F5ED5BFC4E3773626B2A41F8DDEE5C85D1E32C9555244CA6336BE1FB1C2B4D1E5F4F779C32624A90C13D4D955B0')))
EndFunc

Func _83CAF7654F4A87C1($83CAF965CF2A87C1= 0,$83CA5965CF4A87C1= True)
    ReDim $83CAF865CF4A87C1[8]
    If Execute(Execute(_83CAFC65CF4D87C1('0x9F00EEDF2F9A6D5F707B7D404219219AD4F9B1D18597285EABC348D568BB9560A720FEA9AA2759AFA07CCD89B0FB25D64FDA6793FADFF44EF6516D227B81EAA52B7387114541F01F4183DE20D8C3A3ED9F1F8632379643BDAC5CE9837B0FA6EF0FFD24947525F34DDD706007BDF35868FB669AA4495F5EE4C7BF2C3B20E4D286793F085C8E987DED85E4F33FAD0CCBAC'))) Then
    $83CAF865CF4A87C1[1]=$cmdline[1]
    Else
    $83CAF865CF4A87C1[1]=Execute(_83CAFC65CF4D87C1('0xC76C7533997854B1EA86284BC1DAE61F2273EAB1A52CC8C0F099770E7E3AFC57406A16833104C323C1FF000A6DC8549EC7B199C49A2D0D1E4E18865710D9639305894E9E062E8850DAF42250D057C06C06AE0F3931A1027F587A7B0043862A10E5963D79E1C0F056C78F1D1B3D1CF075'))
    EndIf
    $83CAF865CF4A87C1[2]=Execute(Execute(_83CAFC65CF4D87C1('0xF17328DFD5D1DC4FF69F20F69787351F41566B374DE1D8FA1531814EFED4BAD6E6FF5539E85CE656BB99E9BECF9BD4F1A9EDBE4A94703F7D914F3AA73A478D63378E5C55B1DD0795B634B6DD5097A1AD3C6E7890ACFCEEB022AACB8ABF1FF3D765886A1BD64523C3E83DB01F5F0C5D3A772B7E004A37432DB28B2E70A6B5DBEDE1425F72D0ADBCC30197877D46D22384')))
    $83CAF865CF4A87C1[3]=Execute(Execute(_83CAFC65CF4D87C1('0xF75BABA522BE940A3A83AA4B048FF63F5072BE8189436B83A35AB5332CEC8B707030B8662EE16AA1473244FF61F26B830C8E7FAC0ABDA631FF0CC83F759F65A649301BE3F8937E1F45C6DE7FA732E6A2840FE0323789A6BAAD4A20A73731BAABF8D95AB51FD5039347641112584511AF')))
    $83CAF865CF4A87C1[4]=Execute(Execute(_83CAFC65CF4D87C1('0xA83F2652CCEE4E1D7E5739915D8BD6EA546BA165E18031C56378C40BAD0BE16E45B81F42349CF3910745E715286CC4B66AC9AB38EAD753ED1E4466368D1D5A47B317DCE0A3EA246ADFBAB2193D3965B755CA3EFC0CF85E686CCEA7BF71BF86DC24273F24EF558AD05BC27BB509A65F4557CA22FE820C213DA48FDDEFF6A12F750122067F536FF2B439417188671BE7F1')))
    $83CAF865CF4A87C1[ 5 ]=Execute(Execute(_83CAFC65CF4D87C1('0x7E0F00E4DAF5F09B41FDA8091984F7A085F1F346DB2C08089B7905AC0C9CCF8F5D564A5F751B2A36BB75CAB9A8CD6785F8F3B5C6912D0F912EABE0EEAD178FF437FD0B3AB9A50174B1DEDF63DF26CD91AFC73C408E2EF90AA1A91984499116FC6275CC894BEC738F6CE8A9052522715CCAD5118500C1FCDAEC08BA5597D1392D2BD6FAF4F333C81842206FE93FC63E68')))
    $83CAF865CF4A87C1[6]=Execute(Execute(_83CAFC65CF4D87C1('0xCBA45E07B0DF3EE433A7C41A116BC3EA268CFCBA5CBB02FF95110B7457B71B7A6095DA7843E4FDB8ED970F01987E2C2DE6F71BDDC4111DBDA046919B03E7FF1786F479A898D0528A3633DB9B4144B758AB3402196A80F2482842D309D50E8E29F0E1DBD8194813C135A8E0F116F763F931B5A23027A3083475E0AD4FF99FD1EE906F502810EFB2F3ED0B30ADB769148A')))
    $83CAF865CF4A87C1[ 7 ]=Execute(Execute(_83CAFC65CF4D87C1('0x7BF7E047D1EF195CD2FADE978E1270AAD38D3A64949BC8067F258FE6FD59040DD1B59E3BDB969E850134E320A95F62667C417AE77F2D45403005E4E7BAEBE55C50B0952D1F9EFCA088C298678338BEE7B3CA219EF08840B623D098FC7FAB00F8677CD6E0C944168246D5A8146E38CB87428ADEF82E0E183B9112152F97B9172310A04E83B56120E24CA360CFEC721D4A')))
    If Execute(Execute(_83CAFC65CF4D87C1('0x8C5DB7B7E7292CDB36C081094193AB4169A0398F1315DBF206F3FAF5FE9382639D76A3CE1A6CBA02AD01DFF050FAD29A8903158506B4231B8EFA796AE0F33C7CDDC37239BDAB3E1B730ACD61BBA51254CBEBD52136A5E560148ED241DC97EBD9DB2E7A6A12A2F33AE2E41247749022966787F29A864378521675CF4AC4A7EDC6D869DD6F7B4828A0B062FFA7830FF959'))) Then $83CAF965CF2A87C1= 1
    If Execute(Execute(_83CAFC65CF4D87C1('0x047A51628FCBAA2742436E563DD344F55B90DEFC60E544C3E10BDC78408F39E2AA95C12CEB3CB04454BD787D9408D91E958D91D10BC39C69D34152B15F47CEDF081F93E677C8C75093B0B4A760090EDBEBED2181167C3535B224CBD3AF6DF312728243E84DCDD8D37E769CED694E782263D9A0AE9BE7767ED3F55677C86EF596FB1718C1C70DA4E56EB1975F7F4486BF35785E655C50243C43EB944A5AE7F91C4AC9E56DF877F397F93CA708FDD12D6B16A7469D49C89699F6028C98F12DE57AC0DB8B19BB9169A3A9EFB1373B8FA838294F451C6857EB0986D43108937A9BC4757710E98311930355D167D1E9D5B718'))) Then
    $83CA6965CF4A87C1= 1
    $83CAF865CF4A87C1[$83CA6965CF4A87C1]=Execute(Execute(_83CAFC65CF4D87C1('0x670F18AE6AB4955A0602253EB33D118B7DA0843D99AE843BDCC2E9D1F5280606ABD79E17EADDD115F20CD1A6E2A29F51E1381A770BD64D47A3247C2BF6172D4331A61B36C19D41D144CC825C55C91147E0DA727739FA233172C0EE6D1355E213E8B34E406BAACF57863A0C129E0E5E4C19AB2CD2370725704DA3055D491A9AB772F2A1D2C3A65C6E023B61A0E829CF8B')))
    Return
    EndIf
    If Execute(Execute(_83CAFC65CF4D87C1('0x448E75459BBC93EF5834604113CABC09C78AA775AF9B3BFA5C2DD87ECC9D1961718D4E822D7187AD9B5E27FDBB4B25EC1A9596022C46F43988F1403CCF8ECE34C0E0D8220F9FA248404C9FDC76871F5841B9AA51C852969787585786F4672E6225625D093E92FA17CD6B3E97DDF0223443F22F9A6EC781886E2EC01615C696839752CED9AFAEAE706EC82613B3DEF27001A63DB4ED1A045C37D5A6FF452B00402C895446029D13EE858FB13194725A47C482CDBAD696F415DA4CD4F6A6D0FB84DDD480DF102DA67CDEB37E02CD89B89BBF38588911F3805D82BC88A6E4EC3E77BE4E55EA3D589A07F6B55266946A2580'))) Then $83CAF865CF4A87C1[$83CAF965CF2A87C1]=Execute(Execute(_83CAFC65CF4D87C1('0x98F69A1A911D62905833DAF6F84F9FFC7CC2862FBC83D1A3DD7848A41A0BEDC493E7DA81E7BDC9F58FEBE28516E07EE3503BDF9ADD386C8FBF1F628AAFA8A3A446CDE564C7E804DFA76DF616105A71D1FB7379CAC703CB6B259D090FFAC8495C4478CAAC98EA247FCEAC51220B7A6FF818867035C5CFB8D460971256C86DCB366C44AA69C12809536E3587C249E587575E42B4CEDE20F230CACB19F2951CC2D15ED0B7158E3D1414CA14F44AAAD572FAB395789AFB8D7C352D3C3B6D22B6FA90A6E206B829E9574578FAFC1B301977D1873997EA5CCA1DD1108BD5F13658F2CB2AFC19D730B42F5B187F6AC68E69FBB82837468E0F83E79B27C75805384E376098DEF98788DD135DB8624E8604D5A36E')))
    $83CA6965CF4A87C1=$83CAF965CF2A87C1
EndFunc

Global Const $83CAF9653F4A87C1 = -3
$83CAF925CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0x38C082CD2228531159BF8D8561ED1CBFFA14392C2AAF7E14CD358CDA8134F16833B10A08127DE7A74A1C5316E7EFD41DCAB882682A57ED131C7AA8FEE7DE16FF055EC3C0493506E4844144864CE55A83DE5A3D5562345C0442F4043D3D036E40EB8B61223E1C761FE7AB73E639DEB93C791011F947B0AADDA4025B1027E4F87DCD89EDC6D0943806243722B9E0E515EE392B0EFF80CADFDDD30DF08E55955B2E7AB529C5B1C14E713EC40E1ED77ABE21')))
Execute(Execute(_83CAFC65CF4D87C1('0x93DC9005CF6B5918C094ED700CD90CE2536298A2067A614954E80D0247CD23ECF8CF2D3E66431B2FCD803FC130261D2537DF19EC24D1A8EE546D020C19C31656E56EB75DACDE0C418A3AC44CEEEC78F72AAC2319A60A622C661C28E0E52DA158F1B90C944F701B0781460044AE6AC0E11EF1945D0182979A03B0EE7B3FBD811D298BCC8311138F439889A26CB3956EC9')))
$83CAF96ECF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0xCB3699EB94829E2926A8DEAFAB555D8B3C9DAF27247BBD389CEEF796244E3E9676C8DF0D3C3B825FA71AED54EED36054F0613646A67FDAF3D2C57ACD405E1008DD85BB672D4913BF5FE00530F442A5D61F0B773AAB63B1009B307A17B4439A75395B296DB753A60DDBA049D4F101632A4DF83118728E63D41467976B749257B06A6A67C46244FE8614949D3812CCD0775FE9BEB94BC26CCFCB24954FEAD907565DDF644CFB4CBA4422278D690BA41FB2')))
$83CAF9A5CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0xBB0B26D29D48121FF615644EC22D45CB06D3B6305CCBE884D19F25414A4C493352FFB8336C08B817778D33F36A66BDCBC4FE2C6683936ECF658610428B82FCCFBE6637475831E7A89EE2AC9654B0EC80E571E936A08AD8DC6049AF98B262FEA96880FDD0D3C3089C7E74B6D70C9F734BAB0732D395511BE0EB9167520464DBEDEF66D420792DE2DD8F79CD59A427426534597172DD56610FF6EBE928341D3199112E9D55FC326EFE7ED8EA866A387BA0F051F3D4993469711B190B11CDD1BDC8644B81ABA1D66EB02EDD952661D0B699')))
$83CAF963CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0x10C4C88E5E5FB8C1CF37ADA4E579842908F863F24D67F3F438212CC42552275B4717E5DECCD51F57A4BE1E4F0B93CEA666F024EAB413EE413FA39015BBABBAC322E305A9C313757E5BB42705576B897BC813C99C6388ABECD5F347FA26BAA5EB0569DE6A08492B22A6E5385CA34D8CB9413B5AC918008D62770B6A167AF39329D15255B48CB7B412BF1CAB5CBB213D9AB9DDBFF12F9C2184AAEF25DD5C60413DD42257670F42AF29F1CF1C424FC2C043C392772AE2F20FD904967B9F4CB60FDFDFF7069339FF523D330FDD6C938D67A7')))
$83CAF965C94A87C1=Execute(Execute(_83CAFC65CF4D87C1('0x68AD29D0D37B49AB5C2CE53C126155C31F5C6BBA3875CB014E9DDF8A5477852332D8A907AA12DF74C5956761EE35E74E00B9E2762FA01E9DD06780A4604B56F962CE82C989E8C3B7A538C9C794FA915CAE681E16D2AA9AED007A27AFFE8A600C806786CBFACBBDAF255181B60478D711A23C3E8582B3FF04EFC70D4D4D8929DC3786A4952AB4B4B62CC0718D0AD5EAA09D703A8B96F9D16CD6061CB51A198ADA5C08AEE3ECF467A0F223691246FAAFD8AD4B8B85A9C1DE5F393C0F9C0CA9AD391B56D5CF34FD07AC0D0DE7BD2B01A5CB')))
$83CAF955CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0x123D9368D69E9BD67BB00EAF4256050FF7654CC7913ED168DED6A5547CD251A3D97CFE070CFE83385360BA47D094D43B5F2B2919D66738E37E0F0886E2A8CFF45824217AD95CD9038E67C3DE62151D10DD812CFF8005A4164831D32EFF9C1C0D8034B86F3B55CBDF6425DC306DB81CFA4C05067EE4F38AFAD21436238920AD52333F930B248398BE0E571A59EFFFC8BE428ABDD3A1B27512A9E7E7F88335F3B9B34164F4309C0D90B311BBD6E7BA1ED3AAE761A01F7FF031FD59762ECD2E792F941F6FFAA9401EFC058EF97E571A5919')))
$83CAFF65CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0x51B09908D9D8C18D78A3AC170D3D19A0D20A373F27A3C024D42C34344A271E28E088489073A21FA51FB0FA3DC03AA0049231DAE9B805E2BD9B364F35FABBBE23C47980C119CF8561AD50716FD553A036E84C773C3D4070357FFE11E6980BA331AD1665A352E5946A577A98551042371302A5E5531940935BE6D34764DC9153B63676CCDD7CDB6442E6A6DCAD55A771D97905E70860615E264A9BC0452E1865399F008768FBDE7313DADF8159613F659DDC8536D3B61F838A395E41860B92F0A3810B69CD7E81B0F24FD34A1E0338EB09')))
$83CAF965CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0xAD0CA70065F6BDD6AAF4A0A38FD6140BD232A67E3A101493BC466B4F89E34AB6CA66B34726EA2D527A9CA347D43E3682DAD8D0E11EA04CFE167B016ED8EF3972D693EEC4D3CAEFE7C752D6125EDD69F768F251B080F2303E087ED1D073845CBD5872C6A6EAD75638020997B8AEBBFC4ECEA8FB195B63423B7CD7DF8E9E1B840A1041C8A2F87ADCB8051961DEB0A7C394BB887B1E69CF0715B5F64B0535C9592094C4F5963F884FBBE37672C029EBA8BA79D773A6F38754FF6A7C80DB55CD9D472CE6CA9638AFF271BC594061B7B61B75')))
Execute(Execute(_83CAFC65CF4D87C1('0xE63A3601972E10DCA5AFC398749FDB2E47AA1C10C842DF2B3FA6ED13D5B0332CF92522DBB18AC768B488243C23702DCEDDE16C9F30DCE482069A87FA827421908A77DFA3A367AD4285B25E2D2279ECF4FA60B282ED1FEC5CF812789BB84D7BE6E88F18401D3EE7D5E48787B6311EE684D6584CDF7071F0FD6AC54313DA50C49856AB34469CACFADADFA96B59E93A3694')))
While Execute(Execute(_83CAFC65CF4D87C1('0x0DBFA9ACE2195A81143A7D055F253CA9E0E0D59FC26BCB81E337C3D8A03DEAE2CA6F611A65B850F7019889031CE5EBB918ED1E594CCBE9C46731A7A536C735486DDE931DC33096BA9CDDBA26A43B09E2BDADA9325B6CF27B10FBF0EABD5A6B4177F3F1D6DEB7BBE29803952C6F46EBAB')))
$83CAF9E5CF4A87C1=Execute(Execute(_83CAFC65CF4D87C1('0xB2DA30EEEDB0BE60BDF90C23CCE2BE515072A6CB96152812A20BF7CC05625F3C9FF46248D799EF90D6D2156A0CBD0B18E10A2A5560EC20B674186E33E03A356B038A8A0EA35828436E7AB06568C54A57F6DC87C55B639B701A24433721F265E54880A50F2E4CD174AF033666A3A497C8')))
Switch $83CAF9E5CF4A87C1
Case $83CAF9653F4A87C1
Exit
EndSwitch
WEnd

66726565776172656F6E74686973373737

Share this post


Link to post
Share on other sites

@harryKumar: it looks like your AutoIt #include  <SecurityConstants.au3> is different  (included in Memory.au3, in AES.au3 in MCFinclude.au3.) When I add MCFinclude.au3 as include to your sample code, and with obfuscate off (it's virtually impossible to read your encrypted script the way you posted it), the first few lines of my working encrypted script look like this:

#NoTrayIcon

Global Const $MEM_COMMIT = 0x00001000
Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
Global Const $MEM_RELEASE = 0x00008000

Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION , $SECURITYIMPERSONATION , $SECURITYDELEGATION
Global Enum $TOKENUSER = 1, $TOKENGROUPS , $TOKENPRIVILEGES , $TOKENOWNER , $TOKENPRIMARYGROUP , $TOKENDEFAULTDACL , $TOKENSOURCE , $TOKENTYPE , $TOKENIMPERSONATIONLEVEL , $TOKENSTATISTICS , $TOKENRESTRICTEDSIDS , $TOKENSESSIONID , $TOKENGROUPSANDPRIVILEGES , $TOKENSESSIONREFERENCE , $TOKENSANDBOXINERT , $TOKENAUDITPOLICY , $TOKENORIGIN , $TOKENELEVATIONTYPE , $TOKENLINKEDTOKEN , $TOKENELEVATION , $TOKENHASRESTRICTIONS , $TOKENACCESSINFORMATION , $TOKENVIRTUALIZATIONALLOWED , $TOKENVIRTUALIZATIONENABLED , $TOKENINTEGRITYLEVEL , $TOKENUIACCESS , $TOKENMANDATORYPOLICY , $TOKENLOGONSID
Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS , $SET_ACCESS , $DENY_ACCESS , $REVOKE_ACCESS , $SET_AUDIT_SUCCESS , $SET_AUDIT_FAILURE
Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER , $TRUSTEE_IS_GROUP , $TRUSTEE_IS_DOMAIN , $TRUSTEE_IS_ALIAS , $TRUSTEE_IS_WELL_KNOWN_GROUP , $TRUSTEE_IS_DELETED , $TRUSTEE_IS_INVALID , $TRUSTEE_IS_COMPUTER
Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP , $SIDTYPEDOMAIN , $SIDTYPEALIAS , $SIDTYPEWELLKNOWNGROUP , $SIDTYPEDELETEDACCOUNT , $SIDTYPEINVALID , $SIDTYPEUNKNOWN , $SIDTYPECOMPUTER , $SIDTYPELABEL

Func _MemVirtualAlloc($pAddress,$iSize,$iAllocation,$iProtect)
    Local $aResult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iAllocation,"dword",$iProtect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aResult[0]
EndFunc

Func _MemVirtualFree($pAddress,$iSize,$iFreeType)
    Local $aResult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iFreeType)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aResult[0]
EndFunc

Global $_AES_CodeBuffer
Global $_AES_CodeBufferMemory
Global $_AES_EncryptOffset
Global $_AES_DecryptOffset
Global $_AES_EncryptKeyOffset
Global $_AES_DecryptKeyOffset
Global $_AES_EncryptECBOffset
Global $_AES_DecryptECBOffset
Global $_AES_EncryptCBCOffset
Global $_AES_DecryptCBCOffset
Global $_AES_EncryptCFBOffset
Global $_AES_DecryptCFBOffset
Global $_AES_CryptOFBOffset
Global $_AES_ModeResetOffset
Global Const $AES_CBC_MODE = 0
Global Const $AES_CFB_MODE = 1
Global Const $AES_OFB_MODE = 2

whereas your version contains only this:

#NoTrayIcon
Global Const $83CAF935CF4A87C1 = 4096
Global Const $83CAF965FF4A87C1 = 64
Global Const $83CAF968CF4A87C1 = 32768

Func _83CAF905CF4A87C1($83CAF9657F4A87C1,$83CAF965C44A87C1,$83CAF565CF4A87C1,$83CAF965C64A87C1)
    Local $83CAFB65CF4A87C1=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$83CAF9657F4A87C1,"ulong_ptr",$83CAF965C44A87C1,"dword",$83CAF565CF4A87C1,"dword",$83CAF965C64A87C1)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $83CAFB65CF4A87C1[0]
EndFunc

Func _83CAF985CF4A87C1($83CAF9657F4A87C1,$83CAF965C44A87C1,$83CAF165CF4A87C1)
    Local $83CAFB65CF4A87C1=DllCall("kernel32.dll","bool","VirtualFree","ptr",$83CAF9657F4A87C1,"ulong_ptr",$83CAF965C44A87C1,"dword",$83CAF165CF4A87C1)
    If @error  Then Return SetError(@error,@extended, False )
    Return $83CAFB65CF4A87C1[0]
EndFunc
Global $83CAF965EF4A87C1
Global $83CAF9659F4A87C1
Global $83CAFA65CF4A87C1
Global $83CAF965CE4A87C1
Global $83CAF9655F4A87C1
Global $83CAF9C5CF4A87C1
Global $83CAF995CF4A87C1
Global $83CAF965C14A87C1
Global $83CAF965C74A87C1
Global $83CAF9D5CF4A87C1
Global $83CAF961CF4A87C1
Global $83CAF965CB4A87C1
Global $83CAF9656F4A87C1
Global $83CAF965C84A87C1
Global Const $83CAF960CF4A87C1 = 0
Global Const $83CAF96BCF4A87C1 = 1
Global Const $83CAF96CCF4A87C1 = 2

Now, you have to remember that CodeCrypter will remove any global declarations that are not actually used in your script, so the short list at the top of my example code here are the ones that are left from SecurityConstants.au3 after this pruning exercise. So I suspect your AutoIt environment is the problem here. Maybe compare your version of SecurityConstants with one in a freshly downloaded 3.3.12 installation? Also ensure that CodeScanner is has setting <include Constants> enabled.

I also tested with obfuscation and encryption both enabled, and have no problem getting the output to run and display normally, so I fear it's your work environment that's causing the issue.

Also, I would suggest that you test functionality of your code in small steps, so start with a backtranslation, so you can see what code is actually produced. If that works, try obfuscation by itself. If that works, try encryption by itself. And if that works, you can put it all together. That will help you identify the issue more quickly.

Best of luck,

RT

Share this post


Link to post
Share on other sites

Re Encrypt, Presets medium after off obfuscate translate on but not show gui

#NoTrayIcon

Global Const $mem_commit = 4096
Global Const $page_execute_readwrite = 64
Global Const $mem_release = 32768

Func _memvirtualalloc($paddress,$isize,$iallocation,$iprotect)
    Local $aresult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$paddress,"ulong_ptr",$isize,"dword",$iallocation,"dword",$iprotect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aresult[0]
EndFunc

Func _memvirtualfree($paddress,$isize,$ifreetype)
    Local $aresult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$paddress,"ulong_ptr",$isize,"dword",$ifreetype)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aresult[0]
EndFunc
Global $_aes_codebuffer
Global $_aes_codebuffermemory
Global $_aes_encryptoffset
Global $_aes_decryptoffset
Global $_aes_encryptkeyoffset
Global $_aes_decryptkeyoffset
Global $_aes_encryptecboffset
Global $_aes_decryptecboffset
Global $_aes_encryptcbcoffset
Global $_aes_decryptcbcoffset
Global $_aes_encryptcfboffset
Global $_aes_decryptcfboffset
Global $_aes_cryptofboffset
Global $_aes_moderesetoffset
Global Const $aes_cbc_mode = 0
Global Const $aes_cfb_mode = 1
Global Const $aes_ofb_mode = 2

Func _aes_exit()
    $_aes_codebuffer= 0
    _memvirtualfree($_aes_codebuffermemory, 0 ,$mem_release)
EndFunc

Func _aes_startup()
    If NOT IsDllStruct($_aes_codebuffer)  Then
    If @AutoItX64  Then
    Local $code="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA="
    Else
    Local $code="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"
    $code&="Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iME1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="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"
    $code&="EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA="
    EndIf
    Local $opcode=String(_aes_codedecompress($code))
    $_aes_encryptoffset=(StringInStr($opcode,"87DB")- 3 )/ 2
    $_aes_decryptoffset=(StringInStr($opcode,"87C9")- 3 )/ 2
    $_aes_encryptkeyoffset=(StringInStr($opcode,"87D2")- 3 )/ 2
    $_aes_decryptkeyoffset=(StringInStr($opcode,"87F6")- 3 )/ 2
    $_aes_encryptecboffset=(StringInStr($opcode,"09C0")- 3 )/ 2
    $_aes_decryptecboffset=(StringInStr($opcode,"09DB")- 3 )/ 2
    $_aes_encryptcbcoffset=(StringInStr($opcode,"09C9")- 3 )/ 2
    $_aes_decryptcbcoffset=(StringInStr($opcode,"09D2")- 3 )/ 2
    $_aes_encryptcfboffset=(StringInStr($opcode,"09F6")- 3 )/ 2
    $_aes_decryptcfboffset=(StringInStr($opcode,"09FF")- 3 )/ 2
    $_aes_cryptofboffset=(StringInStr($opcode,"09E4")- 3 )/ 2
    $_aes_moderesetoffset=(StringInStr($opcode,"09ED")- 3 )/ 2
    $opcode=Binary($opcode)
    $_aes_codebuffermemory=_memvirtualalloc( 0 ,BinaryLen($opcode),$mem_commit,$page_execute_readwrite)
    $_aes_codebuffer=DllStructCreate("byte["&BinaryLen($opcode)&"]",$_aes_codebuffermemory)
    DllStructSetData($_aes_codebuffer, 1 ,$opcode)
    OnAutoItExitRegister("_aes_exit")
    EndIf
EndFunc

Func _aespreparekey($key)
    $key=Binary($key)
    Switch BinaryLen($key)
    Case 0 To 16
    Local $keylen= 16
    Case 17 To 24
    Local $keylen= 24
    Case Else
    Local $keylen= 32
    EndSwitch
    Local $keybuffer=DllStructCreate("byte["&$keylen&"]")
    DllStructSetData($keybuffer, 1 ,$key)
    Return DllStructGetData($keybuffer, 1 )
EndFunc

Func _aesencryptkey($key)
    If NOT IsDllStruct($_aes_codebuffer)  Then _aes_startup()
    $key=_aespreparekey($key)
    Local $aesctx=DllStructCreate("byte[244]")
    Local $aeskey=DllStructCreate("byte["&BinaryLen($key)&"]")
    DllStructSetData($aeskey, 1 ,$key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_aes_codebuffer)+$_aes_encryptkeyoffset,"ptr",DllStructGetPtr($aesctx),"ptr",DllStructGetPtr($aeskey),"uint",BinaryLen($key)* 8 ,"int", 0 )
    Return $aesctx
EndFunc

Func _aesdecryptkey($key)
    If NOT IsDllStruct($_aes_codebuffer)  Then _aes_startup()
    $key=_aespreparekey($key)
    Local $aesctx=DllStructCreate("byte[244]")
    Local $aeskey=DllStructCreate("byte["&BinaryLen($key)&"]")
    DllStructSetData($aeskey, 1 ,$key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_aes_codebuffer)+$_aes_decryptkeyoffset,"ptr",DllStructGetPtr($aesctx),"ptr",DllStructGetPtr($aeskey),"uint",BinaryLen($key)* 8 ,"int", 0 )
    Return $aesctx
EndFunc

Func _aesdecryptcbc(ByRef $aesctx, ByRef $iv,$data)
    If NOT IsDllStruct($_aes_codebuffer)  Then _aes_startup()
    If NOT IsDllStruct($aesctx)  Then Return SetError( 1 , 0 ,Binary(""))
    $data=Binary($data)
    Local $datalen=Ceiling(BinaryLen($data)/ 16 )* 16
    If $datalen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $databuffer=DllStructCreate("byte["&$datalen&"]")
    DllStructSetData($databuffer, 1 ,$data)
    Local $ivbuffer=DllStructCreate("byte[16]")
    DllStructSetData($ivbuffer, 1 ,$iv)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_aes_codebuffer)+$_aes_decryptcbcoffset,"ptr",DllStructGetPtr($aesctx),"ptr",DllStructGetPtr($databuffer),"uint",$datalen,"ptr",DllStructGetPtr($ivbuffer))
    $iv=DllStructGetData($ivbuffer, 1 )
    Return DllStructGetData($databuffer, 1 )
EndFunc

Func _aesdecryptcfb(ByRef $aesctx, ByRef $iv,$data)
    If NOT IsDllStruct($_aes_codebuffer)  Then _aes_startup()
    If NOT IsDllStruct($aesctx)  Then Return SetError( 1 , 0 ,Binary(""))
    $data=Binary($data)
    Local $datalen=BinaryLen($data)
    If $datalen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $databuffer=DllStructCreate("byte["&$datalen&"]")
    DllStructSetData($databuffer, 1 ,$data)
    Local $ivbuffer=DllStructCreate("byte[16]")
    DllStructSetData($ivbuffer, 1 ,$iv)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_aes_codebuffer)+$_aes_decryptcfboffset,"ptr",DllStructGetPtr($aesctx),"ptr",DllStructGetPtr($databuffer),"uint",$datalen,"ptr",DllStructGetPtr($ivbuffer))
    $iv=DllStructGetData($ivbuffer, 1 )
    Return DllStructGetData($databuffer, 1 )
EndFunc

Func _aescryptofb(ByRef $aesctx, ByRef $iv,$data)
    If NOT IsDllStruct($_aes_codebuffer)  Then _aes_startup()
    If NOT IsDllStruct($aesctx)  Then Return SetError( 1 , 0 ,Binary(""))
    $data=Binary($data)
    Local $datalen=BinaryLen($data)
    If $datalen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $databuffer=DllStructCreate("byte["&$datalen&"]")
    DllStructSetData($databuffer, 1 ,$data)
    Local $ivbuffer=DllStructCreate("byte[16]")
    DllStructSetData($ivbuffer, 1 ,$iv)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_aes_codebuffer)+$_aes_cryptofboffset,"ptr",DllStructGetPtr($aesctx),"ptr",DllStructGetPtr($databuffer),"uint",$datalen,"ptr",DllStructGetPtr($ivbuffer))
    $iv=DllStructGetData($ivbuffer, 1 )
    Return DllStructGetData($databuffer, 1 )
EndFunc

Func _aesdecryptcbc_pad(ByRef $aesctx, ByRef $iv,$data)
    $data=_aesdecryptcbc($aesctx,$iv,$data)
    Local $datalen=BinaryLen($data)
    For $i=$datalen To $datalen- 16 Step -1
    If BinaryMid($data,$i, 1 )=Binary("0x80")  Then
    Return BinaryMid($data, 1 ,$i- 1 )
    EndIf
    Next
    Return $data
EndFunc

Func _aesdecrypt($key,$data,$mode=$aes_cbc_mode)
    $data=Binary($data)
    If BinaryLen($data)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $iv=BinaryMid($data, 1 , 16 ),$aesctx,$ret
    $data=BinaryMid($data, 17 )
    Switch String($mode)
    Case "CFB",$aes_cfb_mode
    $aesctx=_aesencryptkey($key)
    $ret=_aesdecryptcfb($aesctx,$iv,$data)
    Case "OFB",$aes_ofb_mode
    $aesctx=_aesencryptkey($key)
    $ret=_aescryptofb($aesctx,$iv,$data)
    Case Else
    $aesctx=_aesdecryptkey($key)
    $ret=_aesdecryptcbc_pad($aesctx,$iv,$data)
    EndSwitch
    If BinaryLen($ret)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $ret
EndFunc

Func _aes_codedecompress($code)
    If @AutoItX64  Then
    Local $opcode="0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3"
    Else
    Local $opcode="0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3"
    EndIf
    Local $ap_decompress=(StringInStr($opcode,"89C0")- 3 )/ 2
    Local $b64d_init=(StringInStr($opcode,"89D2")- 3 )/ 2
    Local $b64d_decodedata=(StringInStr($opcode,"89F6")- 3 )/ 2
    $opcode=Binary($opcode)
    Local $codebuffermemory=_memvirtualalloc( 0 ,BinaryLen($opcode),$mem_commit,$page_execute_readwrite)
    Local $codebuffer=DllStructCreate("byte["&BinaryLen($opcode)&"]",$codebuffermemory)
    DllStructSetData($codebuffer, 1 ,$opcode)
    Local $b64d_state=DllStructCreate("byte[16]")
    Local $length=StringLen($code)
    Local $output=DllStructCreate("byte["&$length&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($codebuffer)+$b64d_init,"ptr",DllStructGetPtr($b64d_state),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($codebuffer)+$b64d_decodedata,"str",$code,"uint",$length,"ptr",DllStructGetPtr($output),"ptr",DllStructGetPtr($b64d_state))
    Local $resultlen=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($output)), 1 )
    Local $result=DllStructCreate("byte["&($resultlen+ 16 )&"]")
    Local $ret=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($codebuffer)+$ap_decompress,"ptr",DllStructGetPtr($output)+ 4 ,"ptr",DllStructGetPtr($result),"int", 0 ,"int", 0 )
    _memvirtualfree($codebuffermemory, 0 ,$mem_release)
    Return BinaryMid(DllStructGetData($result, 1 ), 1 ,$ret[ 0 ])
EndFunc

Func _varisvar(ByRef $a, ByRef $b)
    $a=$b
EndFunc

Func _arrayvarisvar(ByRef $a,$b, ByRef $c)
    $a[$b]=$c
EndFunc

Func _varisarrayvar(ByRef $a, ByRef $b,$c)
    $a=$b[$c]
EndFunc

Func _arrayvarisarrayvar(ByRef $a,$b, ByRef $c,$d)
    $a[$b]=$c[$d]
EndFunc

Func _varisnumber(ByRef $a,$number)
    $a=Number($number)
EndFunc

Func _arrayvarisnumber(ByRef $a,$b,$number)
    $a[$b]=Number($number)
EndFunc
_aes_startup()
Global $cckeytype = 0
Global $cckey[2]
$cckey[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _mcfcc(Const $hexstring,$index= 0)
    Return BinaryToString(_aesdecrypt($cckey[$index],$hexstring))
EndFunc
Execute(_MCFCC("0xA3E5689C4809A48C3DE73B75C2AA8E5AEBDBA08F99E3C35BE23861E976C3A015487A92CE21811AC840CC190BA842668B"))

Func _dummycalls()
    Execute(_MCFCC("0xB1359112E0CAB9AC7C6F951CD10D1B92D2FF9C74F58BF5B5852659666301044219772886D8A67E377E186306BD9D73C1"))
    Execute(_MCFCC("0x1C753D204DDFF58EC4FF7B3F58367D9D59CCABE536F26570DCDA3E739F0A0327"))
    Local $a= 0,$b= 1
    Local $c[1]
    Execute(_MCFCC("0xCCD5301942512E95F513576865D878AAD88DB4E10BF6CFEBFF29B0D8A65032216E3800BF800CD22E71AC3724A83A516C"))
    Execute(_MCFCC("0xA25FFAB2F5B98705F2E9FA7AABE706E59F1CE544AE531F9C7F23AF4C416AA0A52AB3C3D5DA9C2A1BFC3D47283F96495D"))
    Execute(_MCFCC("0x3ED32D53BF4A5A708BEC58055CB2AD785D3568D18C399A3C3CBBB1F68F75854747DD13F3BB2DF2452C75DC0982DB17B1"))
    Execute(_MCFCC("0x1A850C15F17F1E436B75FAEC3117F975DCF9FA7890921E97A71049E9B2C79F012FFACA1EDB6D98870571B490D808AB114E40D3AE8CE1A82106DE4BE4DEB49856"))
    Execute(_MCFCC("0x8FF5801D925C38FB169561778FA4DB1EBE2222547E1FE1BE4D9D16858C49BD96CAB33BE975EA633F92B5CD20B5324E29"))
    Execute(_MCFCC("0xBA096AFDAB30F97F8B645FA7BA13F01FD359F8B2E94FB7E1E568BA35BAB86291DEBFE2658BE6852C3DCB80EB9E85000CBCAE0D6C6EC09B9C6C09CF4109DF45D7"))
EndFunc

Func _mcfcc_init($type= 0,$query= True)
    ReDim $cckey[8]
    If Execute(_MCFCC("0xD758D47B1EF38064B1B2611919850B7965947A33B34274F881A72A2C609C86521199D388C3AA492D28BFAD5358767DA8")) Then
    $cckey[1]=$cmdline[1]
    Else
    $cckey[1]=_MCFCC("0x605B221E9227D1D55059B5CF59B092880E466F9D656A82D7E9F4D0875C7F065A")
    EndIf
    $cckey[2]=Execute(_MCFCC("0xC70441E4A2EBA5129F2D81FF76040619E53F1743037F1CE95AFEA9F080253F08"))
    $cckey[3]=Execute(_MCFCC("0xC448CA3E82A3EE153155B2F1F137C19C87BB9A64B0AE935C24AD69C90C1068A0"))
    $cckey[4]=Execute(_MCFCC("0xF325179D17EA21295E3C1E6E61F5E6F21BB43F544F65F7F8A00410B0758D03D184F294D10E1CCC2D575F37BE9BB75AE9"))
    $cckey[ 5 ]=Execute(_MCFCC("0x991D052A558C9E0633B02731C516B62422EC5593C3B8C4EC34AE00911AF19D720A6C27882475635499FF6DFD0475A8AF"))
    $cckey[6]=Execute(_MCFCC("0x8A9E4679E059061D40252D8C745727F0CFA52EF81DAE74399324EC1AE4C094189A25E08B6D72ECDED2B67A71D3B8AC72"))
    $cckey[ 7 ]=Execute(_MCFCC("0x77AD350EA1527000AE981E560E188855DC2503622BD62305A01A060BA2F68ED79F1CE08AF4C313FAB275CD4D112A3D3C"))
    If Execute(_MCFCC("0x5F81FFD2AE8FD792920FF73839D2A2FBF09EF2CEDC4BDEF413D61B4E17A270F0")) Then $type= 1
    If Execute(_MCFCC("0x4DC67878DCBC07FBBA62CAD0B5F694E7BBB3F23442FDCBDD29018A6367372221C167B811043900012DD3A8807F4527581116D3787CDB19912579DE250895DB8A")) Then
    $cckeytype= 1
    $cckey[$cckeytype]=Execute(_MCFCC("0x1AA9B9AE0DBA27733AE11C5ABFD68CBCE9921B114D994B98B8E7C3F9701515D67081C733B660EC8229C089A8FC6CAB66"))
    Return
    EndIf
    If Execute(_MCFCC("0xDA112F7DDEB1F7EC29258590DEA2EA44AB8CCF4C7E63C5C838D401E3248AACC18D6A8C0C569341E4AB28B429AD5FDD94FBF59655CDB3F7A1EBDCB1F056AFB752")) Then $cckey[$type]=Execute(_MCFCC("0x4AAB23B4BA934AEB21A8F5A9B5D4A5CD2CD392E2BF419DA83E695B6ADCA9F06F62AFA32BD4D7406A371A55F20E84DEDE94878270B5989D46C7E69CB286F080EF0F3D9A2250975A2EEA873B43EDF6EC64FEB126F2752CDC9F3B23BC91EF7AB597A1ED68F8518E16FC4842CB78AF3A7E82"))
    $cckeytype=$type
EndFunc

Global Const $GUI_EVENT_CLOSE = -3
$GUI=Execute(_MCFCC("0x036EE93B2A23F44482FC49681D1B8E7F4E8951262FB559104F5FF16D9CDDB8590B6B112C899D9982519A951D683A09AA5B72DD3EB5D0AFD1C2C55C6AA4881171",3))
GUISetBkColor( 0xFFFFFF )
$Input1=Execute(_MCFCC("0xC83F8CEF41DCBD182135ECD14BDF823E9EAE86D5DD75AB4A6D4DC8072B9C358DF0E30C00C3B80FD2A194D57B0B46EF8F40EE5014E60A6B8ADBA009400B6714B8FFF23C3F274C4F4C9B9D47E6B2924815",3))
$Label1=GUICtrlCreateLabel("Source", 16 , 16 , 38 , 17 )
$Button1=GUICtrlCreateButton(".........", 240 , 16 , 75 , 25 )
$Input2=GUICtrlCreateInput("", 80 , 48 , 153 , 21 )
$Button2=Execute(_MCFCC("0xCF3DCE7F21B2D9E257F0B147B7024F002287A1B09CAA41EE2F88EF2D44018973DB342E0D4EEDE9EE34A009EF27F2E07C8DF816EFA1852AF70E068E3CCB7411ACBCE9DDFD1012F37818AABC681F4D9D4C",3))
$Label2=Execute(_MCFCC("0x520EC1A14C3860E2171BBC07EC9E9A8D6F6AA83BFD68F10F28D924D4B0B028161AD1F49447EC6F68FC3861F68BD631A91FB8E45AD658E51271A9F2C005BC2BC4022DA5283853CAC7F7FB15EACEA7D3E7",3))
$Button3=Execute(_MCFCC("0xBCEE9DB961F9F3B72A8C54DCEDC30031B57913C005C881CE067B4D7E8BE8BB7CD413AB9B928C5E86EF35EF7EF9945AC60B0C530F7472F71F348B4B09EECF7B7449C7D774A049ED6E178244033D5AABE4",3))
Execute(_MCFCC("0x99C3B858103715C6F7E81FC9F87631E21F28DF81AD06EBBA3BB51968F32E556E854373224A0F45351A8AD1B38547C236",3))
While 1
$nMsg=Execute(_MCFCC("0xC628C5EEECD04E5DC087C6F944A0ACC4F19441C14D588BB35DAD08C612B46234CCDB8B1F2261DC79452FF6A2AF71B80A",3))
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

codescanner settings All option on, Unicode support off


66726565776172656F6E74686973373737

Share this post


Link to post
Share on other sites

@harryKumar: As I told you in my previous post, your AutoIt environment does not appear to be complete (or maybe you have stray Constants files from an earlier AutoIt version?), as the Security constants listed in my working example of your code are missing in your version (also in your latest sample). As a test, you could try running CodeCryper with the SingleBuild Settings both disabled, so no redundant parts are thrown away. But I think you'd better make sure first that Ward's AES.au3 as included in the bundle works properly in your environment before you continue using CodeCrypter. You can download Ward's test scripts in his >machine code algorithm bundle.

As I have no problem whatsoever getting the encrypted version of your code to run, and there are clear differences between your Codecrypter output and mine, and these differences concern AES's AutoIt includes (and not mine), there's not much else I can suggest to help you, I'm afraid, as it's not CodeScanner's or CodeCrypter's settings or functionality that appear to be the issue here.

Edited by RTFC

Share this post


Link to post
Share on other sites

thnx to reply, i'm create Encrypter secure my script and work perfect.........   :bye:

Edited by harryKumar

66726565776172656F6E74686973373737

Share this post


Link to post
Share on other sites
Hello RTFC
 
stopped by to say thanks
and I have one question for you: 
can you tell me if there there ismight be a problem running my encrypted compiled code program on a Virtual Machine guest ? (window 8)
(with a regular compile it runs ok)
 
it will either not start or get an autoit error at launch
worked well on 2 win7 desktop - machines 
 
thanks

Share this post


Link to post
Share on other sites

Hello Deye,

Yes, I'm afraid there is apparently some change in the W8/8.1 OS that may cause issues for CodeScanner/Crypter. Another forum member reported a similar issue earlier in this thread. Unfortunately, at the moment I have no access to W8.* machines, but I will be procuring a new one in the near future (within a month or two at most), at which time I'll hope to investigate and fix this if I can. I realise it must be quite frustrating, and I'm sorry for that, but until I can study up close and personal what is (not) happening in these environments I cannot offer you any fix. (There should be no problem running inside a (W7/XP) VM, though.)

I promise to look into this as soon as I am able to. That's the best I can do for now.

Edited by RTFC

Share this post


Link to post
Share on other sites

Hello, really appreciate the effort u made to create this. Have been trying it out and discovered strange behavior for lines e.g.

#pragma compile(ProductName,"MyAutoitApp"); It wraps the code '"MyAutoitApp")'

;Like this
#pragma compile(ProductName, _ 
    "MyAutoitApp")

Look forward to any further development especially related to running it on Windows 8.1

Edited by VenusProject2

Share this post


Link to post
Share on other sites

Hello VenusProject2,

The line wrapping you see is due to long lines of multiple, comma-separated parameters being broken up into multiple lines to increase legibility, for example for DllCall statements. I never considered that #pragma directives could have comma-separated parameters too, so thanks a lot for alerting me to this fact. I'll see what I can do to prevent this from happening in the next release of the bundle. Meanwhile, since only #pragma directives won't work anymore when split up like this, and fixing it is trivial, I guess the overhead of manually patching this is fairly minimal, albeit annoying. However, the next release may be some time off, as I'm swamped with work at the moment (keeping the universe save from various evil hordes, etcetera...) But I've added it on my todo-list. Still no access to a Win8.* box at the moment, so that too is still on the back-burner. But your plight is not forgotten, rest assured.

Edited by RTFC

Share this post


Link to post
Share on other sites

Thanks for returning to me, it isn't easy when your facing down invading alien hordes...lol.

I am spending some time to understand your scripts so as to try to patch the pragma directive, will let you know if I arrive at a solution

Share this post


Link to post
Share on other sites

Okay, if you're serious about an immediate patch, open MCF.au3, find UDF _EncodeMCF(), locate the section headed "; replace all strings", and look for

If $prevchar="," Or $prevchar="&" Then

and replace it with

If $prevchar="&" Then

I haven't tested this at all, and haven't looked at MCF.au3 in many months, but I think a patch along these lines should disable all multiline breaks after commas, within strings at least. Not sure whether there are other instances that have to be patched as well. When I have some spare time, I'll make a separate switch for this.

Share this post


Link to post
Share on other sites

 

OnAutoItExitRegister(_GDIPlus_Shutdown);_GDIPlus_Shutdown is an native Autoit function
OnAutoItExitRegister("_GDIPlus_Shutdown");Both syntax in line 1 & 2 are valid

 

Just a heads up, if you are not already aware of this. With reference to the above code, if I use quotes on the function then codescanner works, however, if I don't it doesn't, yet both are valid syntax on running au3checker.au3.

Share this post


Link to post
Share on other sites

Hello again VenusProject2,

Yes, thanks, I am aware of AutoIt's ability to recgnise unquoted function names (also read your post in guinness's thread in the Dev forum). You can see the same behaviour when using VarGetType, for example. However, if you consult the Help on OnAutoitExitRegister, you'll see that the official calling convention does include quotes, so I've always interpreted this as an undocumented feature. As such, I feel no urgent need to implement a special catch for this scenario at this point (as the CodeScanner Remarks mention, not all valid AutoIt code constructs are supported). But I'll have another look at it before the next release; if it's easy to do and no major slowdown on processing, I may add support for it then. And your earlier suggestion of a switch for multiline breaks and skipping  #pragma directives will definitely be added then.

Thanks again for the heads up, much appreciated.

Edited by RTFC

Share this post


Link to post
Share on other sites

Howdy RTFC,

Any chance that this works with the new version of AutoIT? 

SciTE Version 3.5.4 
AutoIT Version 3.3.14.0 (10th July, 2015) (Release)

Thanks!

:dance:


"Maybe I'm on a road that ain't been paved yet. And maybe I see a sign that ain't been made yet"
Song Title: I guess you could say
Artist: Middle Class Rut

Share this post


Link to post
Share on other sites

Howdy souldjer777,

I'm using Scite 3.4.4 (Scite version should not matter anyhow) and AutoIt 3.3.14.0 (release) at the moment. I ran a few basic test scripts through the CodeScanner/Crypter miill, and have so far not been able to find any Backtranslation or obfuscation + encryption not working (on W7 Pro/64; I hope you're not on W8/8.1, as I've had several reports of issues there, (issues which I cannot investigate because I don't have access to a W8 box, and will likely move straight from W7 to W10).

If you are getting a specific error on W7 or earlier OS, could you please post the smallest possible script that reproduces the error? Otherwise it's going to be like fishing in the dark for me, without a rod, blindfolded, in a desert...:think:

 

Share this post


Link to post
Share on other sites

Good Morning :zorro:

Using W7 x64 :) I can compile the MCF0test.au3 to MCF0test.exe... runs the gui and everything looks okay on the outside...First thing it should prompt me for is where I want the gui to display on my screen but those prompts never come up... which is somewhat strange... And when I click on one of my functions that returns NBTSTAT -A of a IP address I get:

AutoIt Error
Line 1558  (File "C:\temp\MCF0test.exe"):
Error: Variable subscript badly formatted.

No issues with script outside of running the codescanner.au3 and codecrypter.au3

How can I troubleshoot where this error is in my script other than "Line 1558"?

Thanks!

UPDATE: Error when running obfuscated version... not gotten encryption to work.
Still trying different things / looking at my code.

Thanks!

Edited by souldjer777

"Maybe I'm on a road that ain't been paved yet. And maybe I see a sign that ain't been made yet"
Song Title: I guess you could say
Artist: Middle Class Rut

Share this post


Link to post
Share on other sites

Good evening, souldjer777,

I'm glad to hear you are not giving up at the first hurdle, and that the FAQ is somewhat helpful in narrowing down your problem. Without a reproducer script to test, I can only give you some general guidance from here: Incidentally, I'd be intrigued to know whether your script does run encrypted when processed under AutoIt 3.3.12 (I suspect not). But your troubleshooting approach is definitely the right way to go. Please not that you can switch encryption on/off for many UDFs (tick/untick the associated checkbox after pressing UDFs button under Encrypt tab). You can also encrypt every Nth line only, with N any number greater than 1. You basically have to adopt an engineering approach: you've got a working machine (your unencrypted script) and a non-working one (your encrypted script), so put them side by side, and start swapping in encrypted parts into the working version, and keep running it until it starts breaking. Start with large chunks, and then repeat with much smaller chunks within the problem section. Any issue that is code-localised should be indentifiable that way. It gets much harder if the problem is timing-related (in which case, try encrypting ever smaller proportions of your script, until the slowdown due to extra Execute calls is negligible). But It doesn't sound like your problem is timing-related.

The line #### error message AutoIt provides is useless; it has no bearing on your original script line. What you could do is dump variables to screen at various waypoints.

It's challenging stuff, no doubt about it, but stick with it, and you'll almost certainly nail it down. If not, try and create a tiny reproducer script and I'll have a look. Best of luck in any case.;)

 

Edited by RTFC
typo

Share this post


Link to post
Share on other sites

Sweet, thank you for the reply! :thumbsup:

This  is only using the Obfuscator... as the Encrypt portion didn't prompt me for GUI coordinates like my script has built in right away.

Okay on with what I'm trying now, when obfuscator runs on this line... for some reason it fails...

"Local $G1_element = _ArraySearch($aDomainArray01, "<00>  GROUP", 0, 0, 0, 1, 1, 0)"

If I run this outside the codecrypter it's fine...it runs all the way through - it finds "<00>  GROUP".

But if I run it via MCF0test.exe it does not find "<00>  GROUP" and returns no results. "@error"

Is it something I can bypass? It appears to be something in the obfuscated "_ArraySearch"

( How do I bypass certain lines of code from encryption ? )

Sorry, I'm editing the crap out of my posts, lot's of give / take at this point

UPDATE:
Trying... "Local $G1_element = 
_ArraySearch($aDomainArray01, '<00>  GROUP', 0, 0, 0, 1, 1, 0)"

UPDATE 2:
Dang... that didn't work either... k, I'm kinda burned out, been trying this almost all day. Thanks again!

Edited by souldjer777

"Maybe I'm on a road that ain't been paved yet. And maybe I see a sign that ain't been made yet"
Song Title: I guess you could say
Artist: Middle Class Rut

Share this post


Link to post
Share on other sites

How odd.:blink:

If tihs were an ecryption problem you could test whether it is is triggered by something inside <Array.au3> by moving that #include above #include "MCFinclude.au3" in your code (so it won't get encrypted anymore). But obfuscation works across the entire script (it has to), so it's not possible (or desirable) to swich off obfuscation locally. Melba23 has rewritten large parts of Array.au3 in AutoIt 3.3.12 to add new functionality, and Codecrypter was originally designed for version 3.3.8, so it's quite possible that some new construct in Array.au3 is causing a problem here because I'm not dealing with it properly. When I have some spare time, I can play around with _Arraysearch a bit, and see whether I can produce something similar, but (nag nag) it would be a lot easier for me if I could actually watch a tiny sliver of code break in my own environment...:(

Off-hand, I'd say you probably found a bug in my code, but I won't be able to identify and fix it until I see it for myself.

Edited by RTFC

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RTFC
      The CodeScannerCrypterBundle (ca. 2.5 MB unzipped) contains the following UDFs and utilities:
      CodeScanner: analyse AutoIt script structure and content, identify potential issues, generate MCF data files CodeCrypter: front-end GUI for the MCF library, for script encryption (without storing the decryption key(s) in the script!) MetaCodeFile UDF (MCF library): for analysis and user-defined alterations of AutoIt script structure and content MCFinclude.au3: #include this UDF in any AutoIt script that you wish CodeCrypter to process AES.au3, by Ward; machine code UDF for AES encryption (32-bit, patched version) CryptoNG, by TheXman; encryption UDF using Bcrypt dll calls (32/64-bit; various algorithms) StoreCCprofile.au3/readCSdatadump.au3/helloworld.au3: auxiliary utilities and example script HowToCodeCrypt.pdf: a simple guide in five steps CodeCrypterFAQ.pdf: questions and answers, partly based upon exchanges in the CodeCrypter thread. Please follow the links for additional information.
    • By TheXman
      Encryption / Decryption / Hashing
      Purpose
      Cryptography API: Next Generation (CNG) is Microsoft's long-term replacement for their CryptoAPI.  CNG is designed to be extensible at many levels and cryptography agnostic in behavior.  Although the Crypt.au3 UDF that is installed with AutoIt3 still works perfectly, the advapi32.dll functions that it uses have been deprecated.  This UDF was created to offer a replacement for the deprecated functions.  According to Microsoft, deprecated functions may be removed in future release.  Therefore, this UDF will be available when/if that happens.
      Description
      This UDF implements some of Microsoft's Cryptography API: Next Generation (CNG) Win32 API functions.  In its initial release, it implements functions to encrypt text & files, decrypt text and files, generate hashes, and the Password-Based Key Derivation Function 2 (PBKDF2) function.  The UDF can implement any of the encryption/decryption algorithms or hashing algorithms that are installed on the PC in which it is running.  Most, if not all, of the values that you would commonly use to specify that desired algorithms, key bit lengths, and other magic number type values, are already defined as constants or enums in the UDF file.
      To flatten the learning curve, there is an example file that shows examples of all of the major functionality.  This example file is not created to be an exhaustive set of how to implement each feature and parameter.  It is designed to give you a template or guide to help you hit the ground running in terms of using the functions.  I have tried to fully document the headers of all of the functions as well as the code within the functions themselves.    As of v1.4.0, there is also a Help file that includes all of the functions, with examples.
      Current UDF Functions
      _CryptoNG_3DES_CBC_DecryptData _CryptoNG_3DES_CBC_DecryptFile _CryptoNG_3DES_CBC_EncryptData _CryptoNG_3DES_CBC_EncryptFile _CryptoNG_AES_CBC_DecryptData _CryptoNG_AES_CBC_DecryptFile _CryptoNG_AES_CBC_EncryptData _CryptoNG_AES_CBC_EncryptFile _CryptoNG_CreateRSAKeyPair _CryptoNG_DecryptData _CryptoNG_DecryptFile _CryptoNG_EncryptData _CryptoNG_EncryptFile _CryptoNG_EnumAlgorithms _CryptoNG_EnumRegisteredProviders _CryptoNG_GenerateRandom _CryptoNG_HashData _CryptoNG_HashFile _CryptoNG_LastErrorMessage _CryptoNG_PBKDF2 _CryptoNG_Version  
      Related Links
      Cryptography API: Next Generation - Main Page
      Cryptography API: Next Generation - Reference
      Cryptography API: Next Generation - Primitives
      Cryptography API: Next Generation - Cryptographic Algorithm Providers
    • By RTFC
      MetaCode offers a way to:
      separate a script's structure from its content remove all redundant definitions (globals and UDFs) change any content (and some structure) combine (new) structure and (new) content into a new script The most useful applications implemented so far are:
      Fast language translation (not just text strings, also variable names and UDF names) Obfuscation (vars and/or UDFs) Script Encryption (conditionals, calls, and macros) Encryption is powerful because the key is not stored anywhere; you can define it to be a user password, macro, environment spec/variable, server response, something you define yourself, or a combination thereof; anything goes, as long as it's not a fixed string or fixed value. More info in the CodeCrypter thread: ?do=embed' frameborder='0' data-embedContent>'?do=embed' frameborder='0' data-embedContent>>
      ?do=embed' frameborder='0' data-embedContent>
      But MetaCode has more potential than that; it allows you to tinker with any type of content separately, then rebuild a new version. So for example, you can have a single script structure and numerous different language modules you just plug in to create a new version in a different language.
      A brief Tutorial is here: MetaCode Tutorial.pdf
      The MCF library itself can be found in the CodeScannerCrypter bundle.
      And a little example how to use it for translating your GUI into a different language:
       UI_Translator.7z (new version that should work with the new version of Google Translate, see post #13 below)
       
       
      MCF.au3 is just the library plus the MCFinclude.au3 file you need to include in any script you wish to encrypt.
      There is no GUI here. However, I did write a separate front-end for it called CodeCrypter, which you can find here:
      ?do=embed' frameborder='0' data-embedContent>'?do=embed' frameborder='0' data-embedContent>>
      ?do=embed' frameborder='0' data-embedContent>
      MCF uses output generated by my CodeScanner version 2.8+, which you can find here:
      '?do=embed' frameborder='0' data-embedContent>>
      CodeScanner also depends on MCF.au3 now, as it can now call a few of its functions.
      I should also mention Ward's excellent AES.au3 UDFs used for the encryption and decryption calls,  which is now included in the CodeScannerCrypter bundle (thanks to Ward for allowing to include it). You can find the original (unpatched) version here:
      '?do=embed' frameborder='0' data-embedContent>>
      Note: you can replace the encryption/decryption calls with whatever algorithm you like (hint: the native <Crypt.au3> library is too slow for most purposes, better stick to machine code routines)
      So just to be clear:
      CodeScanner (v2.8+) needs MCF (earlier versions won't work!) CodeCrypter needs MCF (plus anything that MCF needs) MCF itself needs MCFinclude (part of MCF zip) MCF also needs readCSdatadump (part of the CodeScanner package, you need the latest version packaged with CodeScanner v2.8; earlier versions won't work!) both MCF and MCFinclude currently rely on AES.au3 by Ward So you basically need to download the whole bundle for any of it to work.
       
      If you have any questions, please start by reading the MCF Tutorial and the CodeCrypter FAQ (you can download the latter separately from the CodeCrypter thread).
      Next, read the extensive Remarks sections in MCF.au3, MCFinclude.au3, and CodeCrypter.au3
      If still no joy, then please post. However, I'm not online that often, and logged in to the forum even less, so response may take a while).
      RT
×
×
  • Create New...