Jump to content

DllCallAddress c++ function from autoit source


Recommended Posts

Hello guys, I would really like to know how the DllCallAddress function is in the autoit source code, or atleast what windows Api are being used by that, so I'll be able to recreate a custom version.

I've the visual c++ project of autoit v3 but actually there isn't this function since it wasn't been implemented when the source code was released.

Also if you don't really know, you may help me to guess.

Thank you.

 

Link to comment
Share on other sites

AutoIt3 source code was never fully released. When it used to be released, it didn't bring all AutoIt features since it was meant just to allow users to implement new features on the language, and not be able to create a derivative project. Therefore the following things' source codes were never released and can't be found anywhere:

  • GUI*
  • DllCall*
  • ControlListView
  • InetGet

My stuff

Spoiler

My UDFs  _AuThread multithreading emulation for AutoIt · _ExtInputBox an inputbox with multiple inputs and more features · forceUTF8 fix strings encoding without knowing its original charset · JSONgen JSON generator · _TCPServer UDF multi-client and multi-task (run on background) event-based TCP server easy to do · _TCPClient_UDF multi-server and multi-task (runs on background) event-based TCP client easy to do · ParseURL and ParseStr functions ported from PHP · _CmdLine UDF easily parse command line parameters, keys or flags · AutoPHP Create documents (bills, incomes) from HTML by sending variables/arrays from AutoIt to PHP · (Un)Serialize Convert arrays and data into a storable string (PHP compatible) · RTTL Plays and exports to MP3 Nokia-format monophonic ringtones (for very old cellphones) · I18n library Simple and easy to use localization library · Scripting.Dictionary OOP and OOP-like approach · Buffer/stack limit arrays to N items by removing the last one once the limit is reached · NGBioAPI UDF to work with Nitgen fingerprint readers · Serial/Licensing system require license key based on unique machine ID from your users · HTTP a simple WinHTTP library that allows GET, POST and file uploads · Thread true AutoIt threads (under-dev) · RC4 RC4 encryption compatible with PHP and JS ·  storage.au3 localStorage and sessionStorage for AutoIt Classes _WKHtmlToX uses wkhtmlto* to convert HTML files and webpages into PDF or images (jpg, bmp, gif, png...) Snippets _Word_DocFindReplaceByLongText replace strings using Word UDF with strings longer than 255 characters (MSWord limit) rangeparser parser for printing-like pages interval (e.g.: "1,2,3-5") EnvParser parse strings/paths with environment variables and get full path GUICtrlStaticMarquee static text scrolling Random stuff Super Mario beep sound your ears will hurt

 

Link to comment
Share on other sites

  • Developers
16 minutes ago, Jefrey said:

When it used to be released, it didn't bring all AutoIt features since it was meant just to allow users to implement new features on the language

It was open source for a short period until somebody felt the urge to copy and run with it for no reason. That version is still available. Everything developed after that point in time is never made public and only accessible by a few devs. :)

Jos

 

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers
34 minutes ago, SeeTheCheckTeck said:

I would really like to know how the DllCallAddress function is in the autoit source code,

it is around 200 lines of code so not a simple answer to give..... sorry.

Jsos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Hello.

You need to do something like this.

  1. make your template for the call something like a prototype for your API declaration.  calladdress(":stdcall:return","functionpointer","typeparameter",1)
  2. Parse your Input string parameter,types,values.
  3. Create then dinamically.
  4. Maybe use some Inline assembly to push your parameters and then call your function pointer.
  5. Get the return value.

 

Saludos

 

 

Link to comment
Share on other sites

8 hours ago, Danyfirex said:

Hello.

You need to do something like this.

  1. make your template for the call something like a prototype for your API declaration.  calladdress(":stdcall:return","functionpointer","typeparameter",1)
  2. Parse your Input string parameter,types,values.
  3. Create then dinamically.
  4. Maybe use some Inline assembly to push your parameters and then call your function pointer.
  5. Get the return value.

 

Saludos

 

 

Thank you for your idea... actually I think there must be some inline assembly somewhere in the code because there is no "limit" for the numbers of parameter given at the DllCallAddress function!

Also I've wanted to say, to Jos and Jefrey, I know what you're talking about! If that's not possible to have the source code, I just would like to make my own function similar to it, so that's why I was asking to advices like the one given by Danyfirex!

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...