Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/12/2020 in all areas

  1. CodeCrypter enables you to encrypt scripts without placing the key inside the script. This is because this key is extracted from the user environment at runtime by, for example: password user query any macro (e.g., @username) any AutoIt function call any UDF call some permanent environment variable on a specific machine (and not created by your script) a server response a device response anything else you can think of, as long as it's not stored in the script any combination of the above You need several scripts to get this to work, and they are scattered over several threads, so here's a single bundle that contains them all (including a patched version of Ward's AES.au3; with many thanks to Ward for allowing me to include this script here): Latest version: 3.4 (3 Dec 2021): please follow this link. Note: if you experience issues under Win8/8.1 (as some users have reported), please upgrade to Win10 (or use Win7) if you can; as far as I can tell, the scripts in the bundle all work under Win7 & Win10 (and XP). Moreover, I have no access to a Win8 box, so these issues will not be fixed, at least not by yours truly. How the bits and pieces fit together: CodeCrypter is a front-end for the MCF UDF library (you need version 1.3 or later). Its thread is here: '?do=embed' frameborder='0' data-embedContent>> The MCF package (also contained in the CodeScannerCrypter bundle) contains MCF.au3 (the library itself) plus a little include file called MCFinclude.au3. The latter you have to include in any script you wish to encrypt. Any code preceding it will not be encrypted, any code following it will be encrypted. You define the dynamic key inside MCFinclude.au3, in the UDF: _MCFCC_Init(). From the same post you can download an MCF Tutorial which I heartily recommend, because encrypting a script requires a number of steps in the right order, namely: In MCFinclude.au3, define and/or choose your dynamic key(s) (skip this step = use default setting) include MCFinclude.au3 in your target script Run CodeScanner (version 2.3+) on your target script, with setting WriteMetaCode=True (see '?do=embed' frameborder='0' data-embedContent>>), then close CodeScanner. Start CodeCrypter press the Source button to load your target file enable Write MCF0 (tick the first option in Main Settings) Enable "Encrypt" (last option in the Main Settings) Go to the Tab Encrypt and set up the encryption the way you want (skip this = use default settings) Return to Main Tab and press "Run" if all goes well, a new script called MCF0test.au3 is created in the same directory as your target. It has no includes and no redundant parts. Please check that it works as normal. (see Remarks if not) It all sounds far more complicated than it is, really. Not convinced? Check out: a simple HowTo Guide: HowToCodeCrypt.pdf an updated and extended Q & A pdf (FAQ, also included in the bundle) to help you get started:CodeCrypterFAQ.pdf For additional explanations/examples in response to specific questions by forum members (how it works, what it can/cannot do), see elsewhere in this thread, notably: Simple analogy of how it works: post #53, second part General Explanation and HowTo: post #9, 51, 75, 185/187, 196, 207, 270, 280 (this gets a bit repetitive) BackTranslation: post #179 Obfuscation: post #36 (general), 49 (selective obfuscation) Specific features and fixes: post #3 (security), 84 (redefining the expected runtime response), 169 (Curl Enum fix), 185/187 (using license keys), 194 (replacing Ward's AES UDF with different encryption/decryption calls), 251 (AV detection issue), 262 (extract key contents to USB on different target machine prior to encryption) Limitations: post #26 (@error/@extended), 149 (FileInstall), 191 (AES.au3 on x64) Not recommended: post #46/249 (static encryption), 102 (programme logic error), 237 (parsing password via cmdline) Technical notes: BackTranslation is a test to check that the MetaCode translation worked. Skip it at your peril. It also turns your multi-include composite script into a single portable file without redundant parts (you can opt to leave the redundant parts in, if you want). CodeCrypter can also obfuscate (vars and UDF names) and replace strings, variable names and UDF names with anything else you provide, for example, for language translation). After CodeScanner separates your target's structure from its contents, CodeCrypter (actually MCF, under the hood) can change any part, and then generate a new script from whichever pieces you define. See the MCF Tutorial for more explanation and examples. Encryption currently relies on Ward's excellent AES UDF and TheXman's sophisticated CryptoNG bundle. You can replace these with any other algorithm you like (but this is not trivial to do: edit MCFinclude.au3 UDF _MCFCC(), and MCF.au3 UDF _EncryptEntry(), see post #194 in this thread). AES by Ward, and CryptoNG by TheXman are also included in the bundle (with many thanks to Ward and TheXman for graciously allowing me to republish their outstanding work). Going to lie down now... RT
    1 point
  2. Works like a champ!!! Updated the tags! Thanks a million @argumentum!
    1 point
  3. I see. I think the problem is you are copying too rapidly. Put a sleep (400) after ControlSend($x, "", "", "{LEFT 2}"). Have you tested if you can read the controls in the other program, using Au3Info.exe ?
    1 point
  4. @Neutro: always nice to get positive feedback, thanks!
    1 point
  5. Instead of building it as a string and copy + pasting it into your code, you could just create the array directly... #include <Array.au3> _ArrayDisplay(MultiplicationTable(12)) _ArrayDisplay(MultiplicationTable(14, 12)) ; $iSize - The size of the final 2D array ; $iNull - The number at which to create Null values instead of multiplying Func MultiplicationTable($iSize, $iNull = 999999) Local $aTemp[$iSize][$iSize] For $iRow=1 To $iSize For $iCol=1 To $iSize If ($iRow > $iNull) Or ($iCol > $iNull) Then $aTemp[$iRow - 1][$iCol - 1] = Null Else $aTemp[$iRow - 1][$iCol - 1] = $iRow * $iCol EndIf Next Next Return $aTemp EndFunc
    1 point
  6. ripdad

    LIVE Stereo Audio Waveform

    Great. You're welcome!
    1 point
  7. Please have a look at my OutlookEX UDF (for download please see my signature). Example script: #include <OutlookEX.au3> Local $iAttachmentCount = 0, $sAttachmentNames = "" Global $oOutlook = _OL_Open() MsgBox(0, "Select", "Please select one or multiple items ...") Global $oSelection = $oOutlook.ActiveExplorer().Selection For $oSel In $oSelection $iAttachmentCount = $oSel.attachments.Count $sAttachmentNames = "" $aAttachments = _OL_ItemAttachmentGet($oOutlook, $oSel) MsgBox(0, "_OL_ItemAttachmentGet", "@error = " & @error & ", @extended = " & @extended) _ArrayDisplay($aAttachments) If $iAttachmentCount > 0 Then For $i = 1 To $aAttachments[0][0] $sAttachmentNames = $aAttachments[$i][2] & @CRLF Next EndIf MsgBox(0, "Selection", "Subject: " & @CRLF & StringLeft($oSel.Subject, 100) & @CRLF & @CRLF & "Body:" & @CRLF & StringLeft($oSel.Body, 100) & @CRLF & @CRLF & "Attachments: " & $iAttachmentCount & @CRLF & $sAttachmentNames) Next
    1 point
  8. this person proved from the beginning that they were ungrateful for help or answers given, i dont know why all of you continued to try and help them then act surprised when they do the same thing to you that they did to me.
    1 point
  9. Well, it didn't exist back then, so that's irrelevant. Maybe stop blatantly advertising your UDF and I'd be more willing to try it. Personally, I'd rather create a3x files and shortcuts to the AutoIt executable. This really isn't the place for talking about it anyways. OP wanted to talk about enterprise solutions.
    1 point
  10. That wouldn't have happened if you had used Au3toCmd.
    1 point
  11. I'm nowhere near as cool as water and JLogan3o13, but I use AutoIt scripts on a daily basis at work. I work in Accounting and use them to download invoices for wires, draft emails, extract data from PDFs, and I'm even working on a project right now that will replace a non-compliant server's function by parsing Bank of America data. I'm also running an AutoIt script right now to automate Perceptive Content and download 10K+ invoices for Audit. I've saved the company tons of hours and I only got yelled at once by IT for having my exe's marked as malware.
    1 point
  12. Just my personal experience, I have been in the IT industry since 2004. For the majority of that time I have contracted myself out to different companies, mostly in the healthcare and insurance industries. Since coming across AutoIt, I have used it innumerable times at different customer locations. I have: Gone in to hospitals (notoriously behind the technology curve) that were still using vbscript and winbatch, and converted their teams over to using AutoIt. I have written custom front ends for Enterprise Suites such as SCCM that are still in use today. These front-end GUIs work off A.D. security groups (thanks @water) to show the end user only those options he/she is entitled to. Written solutions for Actuarial departments that pull data from different Oracle sources, aggregate and massage the data, and output to Excel (again, thanks to @water) Even now, when 99% of what I do is virtualization/DevOps in PowerShell/PowerCLI/Python, I still find myself going back to AutoIt all the time. I recently wrote a script for a customer that allows a user to fill out a form on SharePoint for a new virtual server. The form, once submitted, goes through an approval process, generates a ticket in their system and, if approved, is built in the correct VMware environment (out of 5 vCenters) and ready to log into within 30 minutes. Much of the PowerShell modules are calling AutoIt in the background, because it just made more sense (i.e. the same GUI that takes 1171 lines in PowerShell done in ~300 lines in AutoIt).
    1 point
  13. I'm sure it is used uncountable times for enterprise solutions. Example: My Active Directory UDF (AD.au3) has been downloaded > 11000 times. In my company we use AutoIt for prototyping but for production as well.
    1 point
  14. Muhammad_Awais_Sharif, Easy: #include <Array.au3> $sString = "qwertyuiop" $aArray = StringSplit($sString, "") _ArrayDisplay($aArray, "", Default, 8) M23
    1 point
  15. Pass it as a param to the script instead... then you can convert to hwnd, just like you are doing hwnd() helpfile: Command Line Parameters Shows how to send, and then read the params Run("ConsoleRead.exe " & $sHWnd) ; note the trailing space after .exe then, in consoleread.exe... $data = $CmdLine[1] ; of course, it's better to loop through the $CmdLine array, but this is just the simplest sample $hwnd = hwnd($data)
    1 point
×
×
  • Create New...