Jump to content
Sign in to follow this  
SmOke_N

EnCodeIt

Recommended Posts

Yeah, and if you can't post the source that you're obfuscating (because if you wanted it public you probably wouldn't be encoding it anyway) feel free to pm it to smoke, or i can try to take a look at it if you want via pm. Neither of us will steal your code, or publish it on the forum for you. If yours is a bad script (aka a script to do bad things; format, delete, keylog, etc) don't bother sending it though, because you'll get the same response as we'd give to a public post with the same intent.

Ditto, But I think I'd flame a bit harder if they tried to use the the obfuscator on it :lmao: .


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

I'll try to reproduce the "Error: Variable used without being declared."

It may be due to Opt("MustDeclareVars", 1). I would check it with my scripts where I've used this option.

Share this post


Link to post
Share on other sites

I'll try to reproduce the "Error: Variable used without being declared."

It may be due to Opt("MustDeclareVars", 1). I would check it with my scripts where I've used this option.

Thanks!!


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Added a few fixes for download. Please read the Jan 19 release information.

I've trimmed down the variable encode a bit, it actually saved 60 kb's from the last release in the script. I didn't think it would trim it down that much, so I'll be looking at that at a later time.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Thanks Smith :lmao: ---

@t0ddie / @tonedeaf --- No recreation scripts or you haven't had an issue with it lately?


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Sorry, I don't have many scripts to check this with. I'll have to write some to to test the error msg.

It would have been easier for me if I had the source to check it. I know you don't want to make the source public, but it prohibits furthur improvement of a good concept.

Or maybe you're keeping the source private so that possible scripts to unobfuscate scripts can't be written.

I'll try to get a script out to test this issue as early as possible.

Regards,

Tonedeaf

Share this post


Link to post
Share on other sites

Sorry, I don't have many scripts to check this with. I'll have to write some to to test the error msg.

It would have been easier for me if I had the source to check it. I know you don't want to make the source public, but it prohibits furthur improvement of a good concept.

Or maybe you're keeping the source private so that possible scripts to unobfuscate scripts can't be written.

I'll try to get a script out to test this issue as early as possible.

Regards,

Tonedeaf

Well the source will never be public... I have the, If I can't fix it, then don't use it attitude on that one. No one needs to have an easy grasp on how to make the 'Un-EnCodeIt' like they did with the Exe2Aut.exe.

An example might be, that no one that has had a concern on how the obfuscator wasn't working on one of their scripts properly, is that none of those have sent me the source that it wasn't working on, rather than trying to make a reproduction. So we all have things that we would like to keep private, and I understand that.

Anyway, if you can reproduce it, great!!! If not, I guess we'll cross that bridge when someone else can send the actual script that's creating the error.

Thanks for the great responses tonedeaf :lmao:.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Fixed 1 main issue / Added another better Array Search for this particular project, made much more stable.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

SmOke_N,

I tested the Encoder with some of my scripts and observed that the encoder works fine on small scripts but some encoding routines give different results when working with large scripts. For eg. After identifying lines in large scripts which produced errors, I moved them to small scripts, encoded the small scripts again, and the script ran without any problems.

Here are the issues I've identified:

1. ERROR: Variable used without being declared

I did not see this error msg this time. I encoded the same script (>2000 lines) which I tried before.

2. ERROR: Can not redeclare a Constant

Source:

If Not IsDeclared("CB_SETCURSEL") Then Global Const $CB_SETCURSEL = 0x14E

Encoded:

If Not IsDeclared($EF640268557AFF30) Then Global Const $EFE4026EE57AFF30 = 0x14E

This error comes when trying to redeclare a constant, which might have been declared previously by in #include file. To avoid this error msg, the AutoIt function IsDeclared() is used. But after encoding, the error msg pops up. The encoded result looks fine to me. I do not know why this causes an error.

This error is easy to fix by just commenting out the lines producing this error.

3. ERROR: ---<function name>--- called with wrong number of args.

Source:

$sNewTime = StringReplace($sNewTime, "tt", "AM")

Encoded:

$EFE4026C5573FF30 = StringReplace($EFE4026C5573FF30, "tt$ezEnS_299AM")

As you can see, the encoded result is actually wrong. The StringReplace() function takes atleast three arguments and the encoded result has actually combined the last two arguments into one argument. This causes the function call to fail.

It looks like the "," between the function parameters is replaced by "$ezEnS_299"

Infact I've saw the exact string "$ezEnS_299" interfering with parameters of functions RegWrite(), RegRead(). In case of RegRead() this junk value is actually appended to the "valuename" parameter of the function call, making the function query a wrong key value.

The source line is part of Include\Date.au3 : Function: _DateTimeFormat()

which got encoded because I had #included it in my script.

I think this bug should be easy to identify in your source.

4. ERROR: Badly formatted "Func" statement.

Source:

Func _GUICtrlComboGetList($idCombo, $sDelimiter = "|")

Encoded:

Func X069F447933AB9854D($EFE4026C537AFFD0, $EFE40262557AFE30 = $EFE4086CE57AFF30)

The second parameter: $sDelimiter = "|" is replaced by: EFE40262557AFE30 = $EFE4086CE57AFF30

It looks like AutoIt does not accept variables as default values in optional parameters.

The source line is part of Include\GuiCombo.au3 : Function: _GUICtrlComboGetList() which got encoded because I had #included it in my script.

Thank you for your continued efforts to improve this project.

Regards,

Tonedeaf

Share this post


Link to post
Share on other sites

Thanks tonedeaf... I see the first issue is actually the IsDeclared() I don't think LxP made exceptions to look for this as a possible variable, as I know I didn't exclude it from text encoding.

On number 3 and 4, I'm assuming you did this with last nights download? I'll have a look, I have no idea why it would throw between the 2 texts... But I'll definately have a look sometime today.

And all of this was on a 2000+ line script? I'm a bit baffled personally... but it will have a look at all the same... Thanks for all the great detail and time you put in that!!


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

SmOke_N,

I tried it with the latest encoder script which i downloaded just 2 hours ago before I ran the tests.

My AutoIt version is 3.1.1.103

I used the same 2000+ lines script which I had tested before.

Thanks,

Tonedeaf

Share this post


Link to post
Share on other sites

SmOke_N,

I tried it with the latest encoder script which i downloaded just 2 hours ago before I ran the tests.

My AutoIt version is 3.1.1.103

I used the same 2000+ lines script which I had tested before.

Thanks,

Tonedeaf

Thanks again Tonedeaf... I'm pretty sure I caught the string (text) issue... was a typo on my part. But, it'll take a while for me to get to the variable/IsDeclared() and any other functions/Calls that may require specific touches like that... unless Sean or Alex tackle it before me. I haven't been to bed yet, so I need to get there soon... and I'll have a look when I get up.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

I have a suggestion:

Instead of using @CRLF for line breaks just use @LF. In a text editor it will appear to be all one line but AutoIt will still interpret it as if it were seperate lines. Plus it is way less readable.

Edited by erifash

Share this post


Link to post
Share on other sites

I have a suggestion:

Instead of using @CRLF for line breaks just use @LF. In a text editor it will appear to be all one line but AutoIt will still interpret it as if it were seperate lines. Plus it is way less readable.

I didn't want to run into the 4090+ char line issue is why I did it that way erifash. I've used @LF everywhere else that wouldn't possibly run into that issue. But, thanks for the idea :lmao: .


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

Ahh, okay. In that case you could have the entire obfuscated script with @LF's then use:

$script = _StringChunk($script, 4087, @CRLF)
This would divide up the @LF script with @CRLF's every 4087 characters (or however many characters work). The _StringChunk() function is in my signature. :lmao:

Share this post


Link to post
Share on other sites

I remember when you wrote this, I'll have a look in a bit... thanks again.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

You're welcome. Always glad to help. :lmao:

EDIT: Could I have a link to LxP's variable UDF? I can't seem to find it.

Edited by erifash

Share this post


Link to post
Share on other sites

You're welcome. Always glad to help. :lmao:

EDIT: Could I have a link to LxP's variable UDF? I can't seem to find it.

There is no link to the variable udf, it's only used in EnCodeIt.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites

***edit 2***

oops, file didn't attach successfully because it's too big... working on posting it...

***edit 3*** found out about my old attachments being saved and using up my space... haha. deleted the other stuff and now had room to attach installer, i'm still retarded though.

***edit 4*** i had a code error on my installer, fixed it... sorry about that.


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...