[TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

Post your working scripts, libraries and tools for AHK v1.1 and older
Dogway
Posts: 4
Joined: 17 Apr 2015, 05:25

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

31 Jul 2019, 07:52

A few questions, is it possible to hide these type of strings?

Code: Select all

Lookup =
(
some
text
here
)
Also I observed that the obfuscated script is noticeable slower. Is this true? Is there a way to make it faster?
afe
Posts: 615
Joined: 06 Dec 2018, 04:36

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

05 Sep 2019, 08:13

An error occurs when the function name has only one character.

For example,

Code: Select all

;$OBFUSCATOR: $STRAIGHT_MODE:
f()
return
;$OBFUSCATOR: $END_AUTOEXECUTE: 

f()
{
    msgbox ok
}
The result is

Code: Select all

@%k@#kk@%%k##ff##k@fff@f#f%fk#f%f@kk%kfk@kk#k#k()
return
@ffk#fkfk@kk#k#k() { 
msgbox ok
}
Remove empty variables

Code: Select all

@fk#fkfk@kk#k#k()
return
@ffk#fkfk@kk#k#k() { 
msgbox ok
}
The function name is no longer the same!
afe
Posts: 615
Joined: 06 Dec 2018, 04:36

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

05 Sep 2019, 11:33

DigiDon wrote:
30 Jul 2018, 13:48
I've run some tests and it seems that there are indeed no %'s straight or dynamic vars introduced inside the names for gLabels or vVars no
Yes, no %'s straight or dynamic vars introduced inside the names for gLabels, but it is OK for vVars.
User avatar
Relayer
Posts: 160
Joined: 30 Sep 2013, 13:09
Location: Delaware, USA

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

05 Sep 2019, 15:24

Hi,

I've been interested in this for a while and finally played with it a little. Has anyone else seen a problem where dynamic variable insertion into regular variables or built-in functions produces an error at run time: "empty variable reference"? Looking at the RMESS file I can see what the substitution would be without the blank dynamic variable insertion. I then look at what the obsfucator created and I see a mismatch of the '%' character such that two end up next to each other as '%%' and AutoHotkey thinks it is a dynamic variable without a name.

I haven't been able to detect a pattern in how it is making this mistake. I thought it was because of some regular variables with simple names that are to be avoided per the documentation but then I started to see the same problem with built in function names such as 'SubStr'.

Example: Su%k@ff%@kff%%#fff#kf@%%k#@f#kk##fk@k#%kk@k%Str
with spaces to better visualize: Su %k@ff% @kff% %#fff#kf@% %k#@f#kk##fk@k#% kk@k% Str

Anyone see this?

Relayer
afe
Posts: 615
Joined: 06 Dec 2018, 04:36

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

09 Sep 2019, 07:13

Relayer wrote:
05 Sep 2019, 15:24
Hi,

I've been interested in this for a while and finally played with it a little. Has anyone else seen a problem where dynamic variable insertion into regular variables or built-in functions produces an error at run time: "empty variable reference"? Looking at the RMESS file I can see what the substitution would be without the blank dynamic variable insertion. I then look at what the obsfucator created and I see a mismatch of the '%' character such that two end up next to each other as '%%' and AutoHotkey thinks it is a dynamic variable without a name.

I haven't been able to detect a pattern in how it is making this mistake. I thought it was because of some regular variables with simple names that are to be avoided per the documentation but then I started to see the same problem with built in function names such as 'SubStr'.

Example: Su%k@ff%@kff%%#fff#kf@%%k#@f#kk##fk@k#%kk@k%Str
with spaces to better visualize: Su %k@ff% @kff% %#fff#kf@% %k#@f#kk##fk@k#% kk@k% Str

Anyone see this?

Relayer
Yes, I also encountered an Empty variable reference (%%) error when I tried to use dynamic obfuscation. It took me a long time to modify the code to meet the prerequisites, but in the end it didn't work.

This is obviously a bug, wrong with %%. For very long code, it is unavoidable that %% will not be generated.
Not working at all, too many bugs.

Error at line 86.

Line Text: kf%k#@k%#%kkfkkkkfk@kkk@ff%#fk#@f#k%%f@#fkf@f%%kfkffk#k#k#f%fkk@k#kfk@f#k#ff%k@@kk@k#
Error: Empty variable reference (%%).

The program will exit.
Monomoy
Posts: 34
Joined: 27 Aug 2019, 11:11

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

15 Jan 2020, 22:28

adding
;$OBFUSCATOR: $END_AUTOEXECUTE:
after 'return' and entering source file into program, to make transMAP

then attempting to obfuscate source code, seems to run without issue

but at the end the script has not been obsfucated

Code: Select all

ESC:: ;hotkey
Coordmode, Mouse, [Client]
Click, 735, -19
Run, chrome.exe https link /  Broken Link for safety
return
;$OBFUSCATOR: $END_AUTOEXECUTE:

Code: Select all

obf_copyright := " Date: 10:23 PM Wednesday, January 15, 2020     "
obf_copyright := "                                                "
obf_copyright := " THE FOLLOWING AUTOHOTKEY SCRIPT WAS OBFUSCATED "
obf_copyright := " BY DYNAMIC OBFUSCATOR L FOR AUTOHOTKEY         "
obf_copyright := " By DigiDon                                     "
obf_copyright := "                                                "
obf_copyright := " Based on DYNAMIC OBFUSCATOR                    "
obf_copyright := " Copyright (C) 2011-2013  David Malia           "
obf_copyright := " DYNAMIC OBFUSCATOR is released under           "
obf_copyright := " the Open Source GPL License                    "

;autoexecute
#NoEnv 
SendMode Input 
SetWorkingDir %A_ScriptDir% 
ESC::
Coordmode, Mouse, [Client]
Click, 735, -19
Run, chrome.exe https link /  Broken Link for safety
return
guest3456
Posts: 3454
Joined: 09 Oct 2013, 10:31

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

16 Jan 2020, 00:14

Monomoy wrote:
15 Jan 2020, 22:28
adding
;$OBFUSCATOR: $END_AUTOEXECUTE:
after 'return' and entering source file into program, to make transMAP

then attempting to obfuscate source code, seems to run without issue

but at the end the script has not been obsfucated
as i remember, only certain things got obfuscated, like variable names and function names... you'd have to check the docs

Logitope
Posts: 19
Joined: 13 Feb 2021, 14:44

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

09 Jun 2021, 14:52

I'm also not able to get this to work.

After working through a few errors only to find that there are too many to remove manually, I tried inserting the ;$OBFUSCATOR: $STOP_OBF command mentioned in the documentation (https://www.everfastaccess.com/AHK-Obfuscator/obfmode.htm) to exclude some functions and labels.

But the Obfuscator was still obfuscating everything. I then removed all ;$OBFUSCATOR: $RESUME_OBF: commands and placed the stop command at various places, including at the very beginning of the script. Still, everything was obfuscated.

I also tried adding a colon after the command (;$OBFUSCATOR: $STOP_OBF:), although there is no colon in the documentation, but the result is still the same.

Did anyone else have the same problem? It seems strange to me that this basic functionality is not working, as at least some people seem to have used the Obfuscator successfully.
ConTrast77
Posts: 12
Joined: 10 Jan 2021, 02:11

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

17 Jun 2022, 17:30

not working in _ Switch ... Case .. _operator:
https://www.autohotkey.com/docs/commands/Switch.htm

"Default:" parameter is treated as a global/local label, not as part of the Switch enum. And therefore it is obfuscated, but it should not be so.

Parameters from this manual: https://www.everfastaccess.com/AHK-Obfuscator/obfmode.htm
has no effect.

Code: Select all

	  switch Var01
	  {
		case "none":
		  swRC := 0
		case "Yes01":
		  swRC := 1   
		case "Yes02":
		  swRC := 2
		default:
		  swRC := 0
	  }
Spoiler
ConTrast77
Posts: 12
Joined: 10 Jan 2021, 02:11

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

17 Jun 2022, 17:38

Bug obfuscation:
if subject to the use of short conditions
.. ? .. : ..

Code: Select all

(Var01 <>"") ? Var02 := "," : Var02 := ""   ; after such comments can also appear and stop being obfuscated

Code: Select all

(Var01 <>"")
  ? Var02 := ","
  : Var02 := ""   ; in this form it is obfuscated FREQUENTLY normally, but comments may stop being deleted
ConTrast77
Posts: 12
Joined: 10 Jan 2021, 02:11

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

17 Jun 2022, 17:43

Bug obfuscation:

Code: Select all

if(Var01<>"") ...
  ...

Code: Select all

if (Var01 <>"") ...     ;  obfuscation succeeds
  ...
obfuscation succeeds when there is a space after the IF but before the parenthesis, there must also be a space before any comparison sign
ConTrast77
Posts: 12
Joined: 10 Jan 2021, 02:11

Re: [TOOL] AHK Dynamic Obfuscator L - Protect your code by Obfuscation

17 Jun 2022, 17:51

Bug obfuscation:

if Hotkey is used in a separate file #include ...
then there shouldn't be any empty lines.
Even if there are lines with comments or with code, there should not be empty lines between them inside each hotkey (in include file) like:

#include FileTest_RShift.ahk

Code: Select all

	~$RShift::
	  ; --
          MsgBox % It's Ok!
	  /*
             no empty lines of code
	  */
	return

	$RShift Up::
	  ; --
	return

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: Basi, nitsik and 184 guests