Leaderboard
Popular Content
Showing content with the highest reputation on 07/26/2014 in all areas
-
I have wrote a lot of binary code library for AutoIt before. I also discover many ways to generate binary code for AutoIt in the past. However, all of them have limitation or need some extra effort. Recently, I think I found the best and easiest way to generate the binary code. So I wrote this UDF, may be my last one about binary code. The Features:Both AutoIt x86 and x64 version are supported.Windows API and static variables can be use (code relocation supported).Decompression at run-time with smallest footprint LZMA decoder.Allocated memory blocks are released automatically.Most C source code works without modification.Two step or one step script generation, very easy to use.How It Works: The C source code must be compiled by MinGW GCC with "-S -masm=intel" option. Output is GAS syntax assembly file.BinaryCall Tool is able to convert the GAS syntax assembly file (*.s) to FASM syntax (*.asm). During the conversion, global symbols will be stored as "Symbol Jump Table" at the head of the file. The output file should be able to be assembled to binary file under command line by FASM.EXE. This syntax conversion is step 1.The step 2 is to assemble the file. BinaryCall Tool will use the embedded FASM to assemble every file twice to generate the relocation table. "BinaryCall.inc" will be included automatically before assembling to detect the Windows API and generate the "API Jump table". All the results will be compressed and converted to AutoIt script output.There are two major functions in the output script. _BinaryCall_Create() function allocates memorys, decompress the binary, relocates the address in memory, and fills the "API Jump Table"._BinaryCall_SymbolList() converts the "Symbol Jump Table" to memory addresses, and then store them as pointers in a DllStruct variable.Finally, we can use DllCallAddress() to call the memory address stored in the DllStruct.Step by Step Tutorial: Write C source code:#include <windows.h> void main() { MessageBox(0, "Hello", "Welcome Message", 1); }Use GCC MinGW 32/64 to compile the source code: gcc -S -masm=intel -m32 MessageBox.cUse BinaryCall Tool "GAS2AU3 Converter", select "MessageBox.s": If Not @AutoItX64 Then Local $Code = '...' Local $Reloc = '...' Local $Symbol[] = ["main"] Local $CodeBase = _BinaryCall_Create($Code, $Reloc) If @Error Then Exit Local $SymbolList = _BinaryCall_SymbolList($CodeBase, $Symbol) If @Error Then Exit EndIfPaste the output script, call the main() in AutoIt: #Include "BinaryCall.au3" ; Paste output here DllCallAddress("none:cdecl", DllStructGetData($SymbolList, "main"))Try to run it! Change Log:v1.0Initial release.v1.1A lot of improvement for GAS2ASM converter and FASM header file.Add many C Run-Time library as inline asm subroutines.Add command-line to argc/argv parser for easy calling main() function.Add ability to redirect stdio.More C source code can work without modification in this version. Following open source projects are tested. And Yes, they can run as binary code library in AutoIt now. SQLite 3.8.5 TCC 0.9.26 PuTTY beta 0.63 v1.2Dynamic-link library (DLL) calling is supported now. If the C program requires a DLL file to run, just put it together with the source file. BinaryCall Tool will searches *.dll and exports all the symbols in these DLL files automatically. Of course, you need these DLL files when run the output script. However, it also works if you loaded them by last version of MemoryDll UDF.To add more Windows API library easily by editing the ini file.Better error handling and more error messages in output script.Add zero padding to avoid short jumps that crash the relocation table.BinaryCall Tool accepts drag and drop files now.Some small bug fixed. BinaryCall 1.0.zip BinaryCall 1.1.zip BinaryCall 1.2.zip1 point
-
Hi! Today I want to show you my current AutoIt project: The ISN AutoIt Studio. The ISN AutoIt Studio is a complete IDE made with AutoIt, for AutoIt! It includes a GUI designer, a code editor (with syntax highlighting, auto complete & intelisense), a file viewer, a backup system, trophies and a lot more features!! Here are some screenshots: Here some higlights: -> easy to create/manage/public your AutoIt-projects! ->integrated GUI-Editor (ISN Form Studio 2) ->integrated - file & projectmanager ->auto backupfunction for your Projects ->extendable with plugins! ->available in several languages ->trophies ->Syntax highlighting /Autocomplete / Intelisense ->Dynamic Script ->detailed overview of the project (total working hours, total size...) And much more!!! -> -> Click here to download ISN AutoIt Studio <- <- Here is the link to the german autoit forum where I posted ISN AutoIt Studio the first time: http://autoit.de/index.php?page=Thread&threadID=29742&pageNo=1 For more information visit my Homepage: https://www.isnetwork.at So….have fun with ISN AutoIt Studio! PS: Sorry for my bad English! ^^1 point
-
File Name: AutoIt v3.3.13.10 Beta File Submitter: Jon File Submitted: 26 Jul 2014 File Category: Beta 3.3.13.10 (26th July, 2014) (Beta) AutoIt: - Added #2686: Random() to return max value when min equals max. - Fixed: Regression in empty array handling. - Fixed #2538: GuiSetAccelerators() was still firing events on disabled button controls. - Fixed #2671: StringSplit() was splitting incorrectly with regards to case sensitivity. Click here to download this file1 point
-
File Name: AutoIt v3.3.13.9 Beta File Submitter: Jon File Submitted: 25 Jul 2014 File Category: Beta 3.3.13.9 (25th, 2014) (Beta) AutoIt: - Added: MapAppend() returns the index of the element added. - Fixed: Regression with Call() and CallArgArray. - Fixed: Regression with speed of arrays. - Fixed: Was silently failing when passing unsupported parameters ByRef - now shows an error message. - Fixed: Map/Object properties starting with ".E3" were incorrectly classed as a number rather than property. Click here to download this file1 point
-
Skin4112, Welcome to the AutoIt forums. Now your wall-of-text is split into paragraphs it might attract a few more readers. M231 point
-
$oIE.document.activeElement.nodename $oIE.document.activeElement.id $oIE.document.activeElement.uniqueid1 point
-
Enable/disable the Webcam's LED with Autoit ?
232showtime reacted to Melba23 for a topic
Lilinote, Welcome to the AutoIt forums. Unfortunately remotely controlling a WebCam LCD is not something we are prepared to support - even though you might not have malicious intent others most certainly have. Thread locked. And before you argue that the WebCam software allows this - that is under user control, it is the scripting of this behaviour that is not permitted. M231 point -
Jon, That is what I would expect to be returned. M231 point
-
Jon, That breaks down empty array semantics.1 point
-
That was intentional. It didn't make sense to me that dim[0] and dim[1] gave the same ubound result of 1. Isn't 0 the expected result?1 point
-
RTFC, As Basil Fawlty once remarked: "A satisfied customer. We should have him stuffed". Glad you like the final result. M231 point
-
Close list of processes
232showtime reacted to JLogan3o13 for a topic
How about using ProcessList: #include <Array.au3> $aList = ProcessList() For $i = 1 To $aList[0][0] If $aList[$i][0] = "calc.exe" Then ProcessClose($aList[$i][0]) Next Edit: If you have a bunch to look at, you could do a switch: #For $i = 1 To $aList[0][0] Switch $aList[$i][0] Case "calc.exe", "notepad.exe", "winword.exe" ProcessClose($aList[$i][0]) EndSwitch Next1 point