AHK源代码加密器 v1.0
来源:互联网 发布:推广淘宝优惠券赚钱 编辑:程序博客网 时间:2024/05/18 16:13
这是AHK源代码加密工具,作为第一层加密,之后可以用Ahk2Exe编译为程序。
由于AHK官方支持开源,结果Ahk2Exe编译的程序(不使用mpress压缩),
在程序末尾明文保存了源代码,不利于发布私有成果。即使压缩、加壳也有
对应的脱壳工具。这个工具可以使Ahk2Exe生成的程序末尾的源代码已加密。
/*;--------------------------------- AHK源代码加密器 v1.0 By FeiYue 脚本说明: 1、实现方式为采用动态运行、内存解码。 用机器码增强了WriteFile函数功能。 2、结合mpress压缩、upx加壳、FileInstall 打包到资源中不释放,直接读取资源数据 等方式,可以较好地隐藏AHK源代码。 3、本工具用途是将AHK脚本转换为加密后的自解压版本。;---------------------------------*/#NoEnv#SingleInstance forceListLines, Offfs=(` %Exec(str, Ahk="", arg="") { static WriteFile, f1, f2, f3, f4, f5 s:=RegExReplace(str,"\s"), StrReplace(s,"u","",size) VarSetCapacity(str,(size+1)*4,0), s:=Trim(s,"u") Loop, Parse, s, u NumPut(A_LoopField,str,(A_Index-1)*4,"uint") ;----------------------------- Ptr:=A_PtrSize ? "UPtr":"UInt" Ahk:=Ahk ? Ahk : A_IsCompiled ? A_ScriptDir "\AutoHotkey.exe" : A_AhkPath IfNotExist, %Ahk% { MsgBox, 4096, Error!, `n`nCan't Find: %Ahk% !`n`n return, 0 } name:="\\.\pipe\AHK" . A_TickCount Loop, 2 if (p%A_Index% := DllCall("CreateNamedPipe","str",name,"uint",2 ,"uint",0,"uint",255,"uint",0,"uint",0,Ptr,0,Ptr,0))=-1 return, 0 Run, %Ahk% "%name%" %arg% DllCall("ConnectNamedPipe",Ptr,p1,Ptr,0) DllCall("CloseHandle",Ptr,p1) DllCall("ConnectNamedPipe",Ptr,p2,Ptr,0) if !WriteFile { x32:="5589E583EC58C744240800000000C744240400100000C70" . "424000000008B450CFFD08945F08B452483C001C1E00289442" . "408C7442404000000008B45F08904248B4510FFD08945ECC74" . "5D407000000C745D80D000000C745DC11000000C745E013000" . "000C745F400000000EB268B45F483E0038945E88B45E88B448" . "5D469D0830000008B45F401C28B45E8895485D48345F401837" . "DF46376D4C745F400000000EB5A8B45F483E0038945E88B45E" . "88B4485D469D0830000008B45F401C28B45E8895485D48B45F" . "48D1485000000008B452001D08B108B45E88B4485D431D0894" . "5E48B45F48D1485000000008B45EC01D08B55E4C1CA0889108" . "345F4018B45F43B4524729E8B45F48D1485000000008B45EC0" . "1D0C700000000008B452483C0018D148500000000C74424100" . "00000008B45288944240C895424088B45EC894424048B451C8" . "904248B4508FFD08B45EC89442408C7442404000000008B45F" . "08904248B4514FFD08B45F08904248B4518FFD0B800000000C" . "9C22400909090" x64:="554889E54883EC6048894D10488955184C8945204C894D2" . "8488B451841B800000000BA00100000B900000000FFD048894" . "5F08B454883C0018D148500000000488B4DF0488B45204189D" . "0BA00000000FFD0488945E8C745D007000000C745D40D00000" . "0C745D811000000C745DC13000000C745FC00000000EB268B4" . "5FC83E0038945E48B45E48B4485D069D0830000008B45FC01C" . "28B45E4895485D08345FC01837DFC6376D4C745FC00000000E" . "B608B45FC83E0038945E48B45E48B4485D069D0830000008B4" . "5FC01C28B45E4895485D08B45FC488D148500000000488B454" . "04801D08B108B45E48B4485D031D08945E08B45FC488D14850" . "0000000488B45E84801D08B55E0C1CA0889108345FC018B45F" . "C3B454872988B45FC488D148500000000488B45E84801D0C70" . "0000000008B454883C001448D1485000000004C8B4550488B5" . "5E8488B4D3848C744242000000000488B45104D89C14589D0F" . "FD0488B55E8488B4DF0488B45284989D0BA00000000FFD0488" . "B55F0488B45304889D1FFD0B8000000004883C4605DC39090" hex:=A_PtrSize=8 ? x64:x32 VarSetCapacity(WriteFile, len:=StrLen(hex)//2) Loop, % len NumPut("0x" SubStr(hex,2*A_Index-1,2),WriteFile,A_Index-1,"char") DllCall("VirtualProtect",Ptr,&WriteFile,Ptr,len,"uint",0x40,Ptr "*",0) kernel32:=DllCall("GetModuleHandle", "Str","kernel32", Ptr) f=WriteFile,HeapCreate,HeapAlloc,HeapFree,HeapDestroy For i,v in StrSplit(f, ",") f%i%:=DllCall("GetProcAddress", Ptr,kernel32, "AStr",v, Ptr) } DllCall(&WriteFile, Ptr,f1, Ptr,f2, Ptr,f3, Ptr,f4, Ptr,f5 , Ptr,p2, Ptr,&str, "uint",size, "uint*",0) DllCall("CloseHandle",Ptr,p2) return, 1})Gui, +AlwaysOnTop +ToolWindowGui, Color, DDEEFFGui, Font, cRed s28Gui, Add, Text,, AHK脚本拖到本窗口即可加密`n`nGui, Show,, AHK源代码加密器 v1.0 - By FeiYueOnMessage(0x201, "LButton_Down")returnLButton_Down() { ListLines, Off if (A_Gui=1 and A_GuiControl="") SendMessage, 0xA1, 2}GuiClose:ExitAppGuiDropFiles:Gui, +OwnDialogsLoop, parse, A_GuiEvent, `n{ file:=A_LoopField MsgBox, 4100, Tip, %file% 文件要加密吗? IfMsgBox, Yes Gosub, 加密}return加密:FileRead, s, %file%f:=RegExReplace(file,"\.[^.]+$") . "-加密.ahk"s:=RegExReplace(JiaMi(s),".{1,60}","s.=""$0""`n")s:="`n;请自行采用Ahk2Exe.exe压缩编译并设定图标`n" . "`n;如果不想采用AutoHotkey.exe请修改Ahk=`n`n" . "`n#NoEnv`n#NoTrayIcon`n#SingleInstance force`ns=`n" . s . "`nAhk=`nExec(s, Ahk)`nExitApp`n" . fsFileDelete, %f%FileAppend, %s%, %f%returnJiaMi(s) { static MyFunc, Ptr:=A_PtrSize ? "UPtr":"UInt" if !MyFunc { x32:="5589E583EC20C745E407000000C745E80D000000C745EC1" . "1000000C745F013000000C745FC00000000EB268B45FC83E00" . "38945F88B45F88B4485E469D0830000008B45FC01C28B45F88" . "95485E48345FC01837DFC6376D4C745FC00000000EB5C8B45F" . "C83E0038945F88B45F88B4485E469D0830000008B45FC01C28" . "B45F8895485E48B45FC8D1485000000008B450801D08B00894" . "5F48B45FC8D1485000000008B450801C28B45F4C1C00889C18" . "B45F88B4485E431C889028345FC018B450C3945FC729CB8000" . "00000C9C20800909090" x64:="554889E54883EC2048894D10895518C745E007000000C74" . "5E40D000000C745E811000000C745EC13000000C745FC00000" . "000EB268B45FC83E0038945F88B45F88B4485E069D08300000" . "08B45FC01C28B45F8895485E08345FC01837DFC6376D4C745F" . "C00000000EB628B45FC83E0038945F88B45F88B4485E069D08" . "30000008B45FC01C28B45F8895485E08B45FC488D148500000" . "000488B45104801D08B008945F48B45FC488D1485000000004" . "88B45104801C28B45F4C1C00889C18B45F88B4485E031C8890" . "28345FC018B45183945FC7296B8000000004883C4205DC390" hex:=A_PtrSize=8 ? x64:x32 VarSetCapacity(MyFunc, len:=StrLen(hex)//2) Loop, % len NumPut("0x" SubStr(hex,2*A_Index-1,2),MyFunc,A_Index-1,"char") DllCall("VirtualProtect", Ptr,&MyFunc, Ptr,len, "uint",0x40, Ptr "*",0) } s:=(A_IsUnicode ? chr(0xfeff) : chr(0xEF) chr(0xBB) chr(0xBF)) s "`t`t`t" size:=VarSetCapacity(s,-1)//4, VarSetCapacity(str,size*12) DllCall(&MyFunc, Ptr,&s, "int",size) Loop, % size str.="u" . NumGet(s,(A_Index-1)*4,"uint") return, str};======== 脚本结束 ========;
阅读全文
0 0
- AHK源代码加密器 v1.0
- WinEggDrop v1.0 源代码
- AHK多个脚本共享全局变量 v1.0
- WinEggDrop后门v1.0源代码
- pftp v1.0 beta源代码
- MyShell 加密壳 v1.0
- 【ahk】获取网站的源代码
- 微软 DeviceEmulator v1.0 源代码开放下载
- Linux内核源代码漫游(code v1.0)
- 文件加密精灵 v1.0 官方
- 加密解密学习笔记 V1.0
- [区块链]Hyperledger Fabric源代码(基于v1.0 beta版本)阅读之乐扣老师解读系列 (四)BSSCP包之pkcs11加密包
- [区块链]Hyperledger Fabric源代码(基于v1.0 beta版本)阅读之乐扣老师解读系列 (五)BSSCP包之SW加密包
- 凤舞天骄TB商店修改器V1.0(DELPHI源代码,无需注册)
- AHK
- Jive源代码 v1.2.4
- Ogre3D V1.6 + VC9.0 源代码详细配置
- TookDES产品BUG报告生成器 v1.0G 源代码探讨
- Java--集合学习记录(1)-Queue
- ARP命令详解
- 置信区间
- mybatis教程
- ARM体系结构下面内存和i/o映射区别
- AHK源代码加密器 v1.0
- RandomAccessFile基本操作
- AHK多个脚本共享全局变量 v1.0
- 微软的Chart控件的用法-折线图
- 数字签名算法RSA
- 屏幕抓字生成字库工具与找字函数 v5.6
- 数字签名算法DSA
- 程序加密启动 v2.6
- 在屏幕顶部居中显示当前时间