Jump to content
Sign in to follow this  

Is it possible to hide members for a COM object?

Recommended Posts




Local $objEmail = ObjCreate("CDO.Message")

    $objEmail.From = '"' & "?" & '" <' & "?" & '>'                          ; These methods ('From' 'to' 'subject' etc stick out like dogs balls in the obf code, but dunno what else I can do
    $objEmail.To = "?@?"

    $objEmail.Subject = $s_Subject
    $objEmail.Textbody = "?" & @CRLF

    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "?"
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

    ; Authenticated SMTP
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "?"
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "?"  ; This introduces another p/w but would only yield a hacker access to this email account.

    ;Update settings

    ; Send the Message

when obfuscated becomes this:

Local $A3B30D64635 = ObjCreate($A2A30E65005)
$A3B30D64635.From = $A2630F60148 & $A024006214A & $A0E40162A1A & $A1440261939 & $A3A40361105
$A3B30D64635.To = $A2140466024
$A3B30D64635.Subject = $A12B8333B03
$A3B30D64635.Textbody = $A154056232F & Execute($A3840666128)
$A3B30D64635.Configuration.Fields.Item($A4440761F2F) = Number($A454086473F)
$A3B30D64635.Configuration.Fields.Item($A494096054C) = $A2440A6034E
$A3B30D64635.Configuration.Fields.Item($A4C40B61D3B) = Number($A5340C6161D)
$A3B30D64635.Configuration.Fields.Item($A4840D61E45) = Number($A2E40E63A56)
$A3B30D64635.Configuration.Fields.Item($A4740F64B11) = $A1C50062C2B
$A3B30D64635.Configuration.Fields.Item($A6150164A3C) = $A5F50262A12

Is there some way to hide the com object members like From, To etc?


Edited by 4Eyes

Share this post

Link to post
Share on other sites

Hi 4Eyes,

I don't think so, because an obfuscated autoit script is - after all - still an autoit script.

So if you want to access methods or attrubutes of objects you need to name them correctly.

You might have a chance using Execute() ...

Regards,Hannes[spoiler]If you can't convince them, confuse them![/spoiler]

Share this post

Link to post
Share on other sites

The best thing you can do is encrypt or hash the information you want to hide. something like .To = Decrypt("dasdasdasfal;sdas;ld")

Share this post

Link to post
Share on other sites


Guten Tag and g'day!

I'm sure there is no way around it, but there are clever (and sometimes devious) people here. I was hoping for something.


I think you may have misunderstood what I was getting at, but thanks for the reply. Yes, I can encrypt or otherwise 'hide' the data, but I'm trying to obfuscate the methods associated with an object. For example, instead of:

$myObj.To = "me@home.com"

I'd like to have:

$myObj.Execute("something or other that the obfuscator won't choke on but is difficult to read")

or similar.


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

Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.