AHK obfuscation tool entirely written in AHK, fully documented, and open-source
It can help protecting your code (uncompiled, or compiled). It does that by:
- ✔ Obfuscating your code
AND optionally:
✔ Removing all your comments
✔ Stripping all whitespaces and empty lines
✔ Scrambling all your code together so that there is no logical order.
**********************************************************
DISCLAIMER
This is an advanced tool and therefore is not meant for beginners.
I would like this topic to be focused on the tool itself, use, documentation , bugs and ways of improving it.
If you want to discuss general subjects such as your views on obfuscation and code protection techniques that you dislike please open another topic in a discussion section and I can link it from there for those interested.
Code protection is a complex topic I would encourage users to research and understand. There exist different techniques and no protection method is infallible. Also AHK is difficult to protect.
DO NOT post encrypted scripts in the Script and Functions forum (except in this very topic)
**********************************************************
Hi all, I'm glad to finally being able to release this tool officially .
It took me a long time and I know some of you already found it on GitHub/Google before this official release but I wanted to have it in a good shape, along with a good documentation and all.
I've used it to obfuscate a major innovative note-taking software of more than 70.000 lines I was developing for several years that I've presented there:
EverFastAccess: Take Notes on Anything from Anywhere.
So this tool can be used for recent AHK project, with more use for bigger project.
A code like this
Code: Select all
ValueFromList(P_Index,P_List,Delim="|") {
global
local found
;This function returns the value from a list index
if (Delim=#Bar#)
P_List:=StrReplace(P_List, #DBar#, #Bar#)
Loop, Parse, P_List, % Delim
if (P_Index = A_Index)
found:=A_LoopField
return found
}
Code: Select all
kfk@#ff@kffk@f#f(#f#ffkff#ff@kk,ffk@f@fkk@@kff#k,k@kf#k@f#kkkf#f@="|") {
global
local kkk#@kfff#
if (k@k%kf#fff%%k@kfkfkk@f#f@k%#%@f@k#fk@fkf@@fkf%@f#kkkf#f@=f#f%f@kkffk@#kf#fkfk#f#k%fk%f@#f%kf)
ffk@%#ff#@f@k%f@fkk@@%@fkf@fk@k@@ff@kf%ff#k:=%k#kkf@k#%%#fk@k#@k@f#f%%@ff@kf%%k@kk%%kkf@f#kkkk#fff@k%%#ff#@f@k%(%k@f##kk#%%k@@f#kfkkfk#kkk@fffk%%k@f@%, %#k@k%%@f@k@f%%f##k@k#f#k@k%, f%kkfk%%#k#fk#k##k@fkk#kfk%f%#fk#kff@%kfkkf)
Loop, Parse, ffk%fkf#k@@ffk@kf@@kffkfff%%ffkkffk@@kfff#ff@kkf%@%#k@k#kk@%fkk@@kff#k, % k@k%kf@f%f%@k#kk#k@f@ffkk%k@%f@#f%f%#k#fk#k##k@fkk#kfk%kkkf#f@
if (#f#%kk@kk#k##fk@#fffff#f#k@k%%@kk#%fkf%kf@ff#f#kfkffk#ff@k#%#ff@kk = %kkf@f#@f%%fk#fff%%f#f#f@k@#kf#k#%%k#f#ff%%fkf##k%%@fkk@kfk@ffkf#%)
%ffk#%%kf#ff@f@%%f#kfk#@k%:=%kfffkk%%kf@f%%@kkk#kf#k@k#%%ff@fk@%%kffkf@#ff@#fkf%%fkf@f@%
return kk%@kkkkk@fk#f#ffk#fkf@%%k#f#@f#fffk#f@f@kkkkf#%@%k#@fkf%kfff#
}
This project is a fork of the Obfuscator for Autohotkey scripts first release by David Malia (Dave) on the Autohotkey forums back in 2013.
I've spent 5 months full-time to be able to improve this quite complex project that required already quite massive work for the original version : correcting bugs, adding new capabilities, improving usability, and revamping the whole documentation, etc. Some of the changes can be found there: What's new
Also as this script is basically a huge parser, I thought of developping sub-projects that could do some code analysis and tell you statistics, information on possible dead codes etc.
It already gives you some stats about your code:
[/size]
It is functional and so much has been improved yet there are still remaining parts to improve but that would require some support/donations.
This project has required an important investment from my side and I am just not capable to spend more time on it without support right now, but let's see.
I hope this tool can help you protect your work and that this version will make it much more usable.
Please tell me if you were able to use it, how you like the documentation, which problems do you have and what could be improved.
Some answers are always pleasant !
**********************************************************
GET IT ON GITHUB
VIEW DOCUMENTATION