Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/19/2017 in all areas

  1. If you have been using AutoIt for any length of time you will know that it is a great, and powerful scripting language. As with all powerful languages there comes a downside. Virus creation by those that are malicious. AutoIt has no virii installed on your system, and if a script you have created has been marked as a virus, (and you're not malicious) then this is a false positive. They found a set of instructions in an AutoIt EXE out there somewhere, took the general signature of the file, and now all AutoIt EXE's are marked (or most of them). This can be due to several reasons. AutoIt is packed with UPX. UPX is an open source software compression packer. It is used with many virii (to make them smaller). Malicious scripter got the AutoIt script engine recognized as a virus. And I am sure there are more ways your executable could be marked, but that covers the basics. Now I am sure you are wanting to know what you can do to get back up and running without being recognized as a virus. You have to send in a report to the offending AV company alerting them to the false positive they have made. It never hurts to send in your source code along with a compiled exe, to help them realize their mistake. You may have to wait up to 24 hours for them to release an update. The time it takes really depends on the offending AV company. Anti-Virus Links AntiVir Website Contact Avast! Website Contact McAfee Website Contact (email address) Symantec (Norton) Website Contact AVG Website Contact (It says sales or other ?'s I assume this will work) ClamWin Website Contact ClamAV Website Contact (I would only contact the ones with "virusdb maintainer or virus submission management") BitDefender Website Contact ZoneLabs Website Contact Norman Website Contact (email address) eSafe Website Contact (login required) A2 (A-Squared) Website Contact (email address) Edit: Added Website links and Contact links. I hope this helps you understand why your AutoIt executables are marked as virii. JS
    1 point
  2. May I add... it could be a great idea to swap these For $s = 0 To UBound($aPostData) - 1 If IsArray($aPostData) Then because running a For/Next loop through an array works - generally - much better if the concerned array is really an array
    1 point
  3. Mikell is right, but it's also easy enough to stringify that array, and stringbetween iterates its own damn self, so isnt this the same thing (save for whatever cleaning you were doing for the GET)? For $s = 0 To UBound($aPostData) - 1 If IsArray($aPostData) Then $StringBetw2 = _ArrayToString(_StringBetween($aPostData[$s], '<div class="entry-content">','<span class="synved-social-container'));My question is exactly for this line ;~ $StringBetw2 = StringRegExpReplace($StringBetw2, "(?is)(<script[^>]+javascript.*?/script>)", "") ;~ $StringBetw2 = StringRegExpReplace($StringBetw2, '(?s)<.*?>', "" & @CRLF) ;~ $StringBetw2 = StringRegExpReplace($StringBetw2, '(&nbsp;)+', "") ConsoleWrite("Line : " & @ScriptLineNumber & " : " & $StringBetw2 & @CRLF) Else ConsoleWrite("Line : " & @ScriptLineNumber & " : " & " Problem " & @CRLF) EndIf Next EndIf Next
    1 point
  4. Firstly.... It has to be your choice to share the source and only do this when you really want to hear suggestions or help others with it! Secondly: As I said before, you really need to stop taking all comments personal as that will only frustrate you and not lead to anything good. I understand it is a normal human reaction to be defensive when people "attack" you with words, but pushing the "ignore button" is really much easier and, more importantly, healthier! Jos
    1 point
  5. Jos

    Center rectangle

    Guess you just have beaten the record of solving your own issue... within 3 minutes. Maybe next time first think/try before posting? Jos
    1 point
  6. Something like this $StringBetw2 = _StringBetween($aPostData[$s], .....) $StringBetw2 = StringRegExpReplace($StringBetw2, .....) can't work anyway, because StringBetween returns an array
    1 point
  7. You’re better off using send command. You’re right AutoIt can’t manipulate xaml forms Unless you combine it with.net
    1 point
  8. Have a look at the string that is in $aPostData[$s]. I don't think it contains the substrings you are searching on in your _StringBetween. I put that text to the console, then copied and pasted it into NotePad++ and could not find the start or end substrings.
    1 point
  9. Jos

    MySciTE4Au3Jump

    @tubaba, Welcome to our forums. I see that the shared rar file contains only an executable file and no sourcefiles. The executable is not a standard AutoIt3 compiled file and honestly do not know why I would trust to run that! Anybody with a sane mind will not simply run this. Jos
    1 point
  10. AICS or AutoIt Compiler Suite is a portable Compiler Suite that I made to further expand the Native Aut2Exe. It houses a Library Manager and Pseudo Debugger. AICS is packaged with the Default library, Environment, and the native Compiler. The library manager allows you to synchronize all your custom UDF in your installed library to your local library (or AICS's library). This allows you to edit, test, and compile your scripts anywhere without bringing the whole AutoIt environement. -This was written in Visual Basic.NET, So it doesn't belong to the [AutoIt Example Scripts - Application] I made a much more comprehensive infographic for AICS: [Imgur] Download: <snip> Direct Download: https://raw.githubusercontent.com/tragenalpha/aics/master/Release/aics10Release.zip [GitHub] Source: https://github.com/tragenalpha/aics
    1 point
  11. It is about 50 years since I last did linear algebra.
    1 point
  12. @Deye Yes it does have an independent "Include" directory alongside the program. Since it already houses the compiler with the application itself the include directory is automatically chosen by the compiler that is bundled with the application this is why I added a Synchronize option. so if you have a script that uses a custom udf you can just hit synchronize and it will copy that UDF to the local include library. But it if your thinking that it detects the script first then copies only the used includes. Actually it doesn't. It copies the Whole installed include library.
    1 point
  13. kylomas

    Stuck Function?

    Batman22, You are stuck in your message loop. That can be fixed like this... #include <Array.au3> #include <MsgBoxConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $TCArray[5] ; Dummy data for now Global $SampIDArray[5] $TCArray[0] = "300.1" $TCArray[1] = "300.0" $TCArray[2] = "poop" $TCArray[3] = "zomgnewtestcode" $TCArray[4] = "fet" $SampIDArray[0] = "Sample1" $SampIDArray[1] = "Sample2" $SampIDArray[2] = "Sample3" $SampIDArray[3] = "Sample4" $SampIDArray[4] = "Sample4" ;---------- Function Calls here AddAllTestCodes() Knownornot() ;~ Addtolistifknownfunction() ;--------- Functions Below here Func AddAllTestCodes() Global $testcodeIC1[3] = ["300.1", "300.0", "Poop"] Global $testcodeIC2[3] = ["218.6", "7199_LL", "Testing"] Global $testcodeIC3[3] = ["blah", "blah2", "blah3"] Global $totaltestcodes = UBound($testcodeIC1) + UBound($testcodeIC2) + UBound($testcodeIC3) Global $knowntestcode[0] _ArrayAdd($knowntestcode, $testcodeIC1) _ArrayAdd($knowntestcode, $testcodeIC2) _ArrayAdd($knowntestcode, $testcodeIC3) ;~ _ArrayDisplay($knowntestcode) EndFunc ;==>AddAllTestCodes Func Knownornot() For $i = 0 To UBound($TCArray) - 1 ;should write zomgnewtestcode to the unknown file, eventually this will prompt me to assign it to IC1, 2, or 3. But for now I just want to debug why the IF statement isn't working. Local $found = _ArraySearch($knowntestcode, $TCArray[$i]) If $found = -1 Then #Region ### START Koda GUI section ### Form=D:\GodModeAccount\Desktop\ArraydataClientIDHidden\ICSelectGUI.kxf $Form1 = GUICreate("Form1", 434, 146, 192, 200) $IC1 = GUICtrlCreateButton("IC 1", 24, 112, 89, 25) $IC2 = GUICtrlCreateButton("IC 2", 120, 112, 105, 25) $IC3 = GUICtrlCreateButton("IC3/4", 232, 112, 81, 25) $IC5 = GUICtrlCreateButton("IC5 or Unknown", 320, 112, 105, 25) $Label1 = GUICtrlCreateLabel("This test code [" & $TCArray[$i] & "] was not found: Please select a IC to assign it to! " & $TCArray[$i], 8, 8, 412, 89) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $IC1 FileWrite(@ScriptDir & "\IC1testcodes.txt", $TCArray[$i] & " " & @CRLF) ;GUISetState(@SW_HIDE) GUIdelete($form1) exitloop Case $IC2 FileWrite(@ScriptDir & "\IC2testcodes.txt", $TCArray[$i] & " " & @CRLF) ;GUISetState(@SW_HIDE) GUIdelete($form1) exitloop Case $IC3 FileWrite(@ScriptDir & "\IC3testcodes.txt", $TCArray[$i] & " " & @CRLF) ;GUISetState(@SW_HIDE) GUIdelete($form1) exitloop Case $IC5 FileWrite(@ScriptDir & "\IC5testcodes.txt", $TCArray[$i] & " " & @CRLF) ;GUISetState(@SW_HIDE) GUIdelete($form1) exitloop EndSwitch WEnd EndIf Next EndFunc ;==>Knownornot However, there are a couple of things that I find unusual: Is the purpose of AddAllTestCodes() to get all test codes into 1 array for _ArraySearch? Creating a gui in a loop is poor design. If you can explain what you want to do I'm sure that we can help you with various alternatives. kylomas
    1 point
  14. The Run('notepad.exe') is just filler for another function that I use. My thinking was simple. Everyone has notpad, so its a fast way to test the script. @TheSaint Oh I know right? More often than not it was an aggravation. My theory was that one forgets its there due to lack of use, thus making it easier to accidentally hit. Over the last few days the code above has become an interical part in my normal command set (I have a list of scripts that run on startup based entirely on includes in a main autoit script, thus making it modular...), and I have not had a problem with accidentally hitting it sense then. Ultimately the small amount that I type in all caps can be mitigated by holding SHIFT, leaving the capslock key redundant at best.
    1 point
  15. jguinch

    Firefox configuration

    Hello ! Here is a small function which allows you to make changes in the Firefox configuration file (of the user running the script) Warning : to make changes into the configuration file, Firefox must be stopped Here you can find some settings in this webpage : http://kb.mozillazine.org/About:config_entries Examples : ; Changes the start page _FF_Config("browser.startup.homepage", "http://www.autoitscript.com/forum") ; Set a manual proxy _FF_Config("network.proxy.type", 1) ; Sets the proxy in manual mode _FF_Config("network.proxy.http", "192.168.1.10") ; Sets the http proxy name/IP _FF_Config("network.proxy.http_port", 3128) ; Sets the http proxy port _FF_Config("network. proxy. autoconfig_url") ; Remove the proxy url ; Allow popups _FF_Config("dom.disable_open_during_load", false) Also, you can use _FF_GetProfileList() to retrieve the list of Firefox profiles for the current user. Now, the two functions : #include <File.au3> ; needed for _PathFull ; #FUNCTION# ==================================================================================================================== ; Name ..........: _FF_Config ; Description ...: Configures Mozilla Firefox ; Syntax ........: _FF_Config($sSettingName[, $sSettingValue = Null[, $sProfileName = ""]]) ; Parameters ....: $sSettingName - Name of the setting to add, change or delete. ; $sSettingValue - [optional] Value of the setting. Default is Null = deletes the line. ; $sProfileName - [optional] Name of the Firefox profile. Default is "" = all Firefox profiles ; Return values .: Success - Returns 1 ; Failure - Returns 0 and set @error to : ; 1 : Unable to list the Firefox profiles ; 2 : Unable to load the specified Firefox profile ; 3 : Firefox is running ; Author ........: jguinch ; =============================================================================================================================== Func _FF_Config($sSettingName, $sSettingValue = Null, $sProfileName = "") Local $sFFConfigFile = "prefs.js" Local $sContent, $aProfiles = _FF_GetProfileList(), $iError = 0, $hPrefs If @error Then Return SetError(@error, 0, 0) If ProcessExists("firefox.exe") Then Return SetError(3, 0, 0) If IsString($sSettingValue) Then $sSettingValue = '"' & $sSettingValue & '"' If IsBool($sSettingValue) Then $sSettingValue = StringLower($sSettingValue) For $i = 1 To $aProfiles[0][0] If $sProfileName <> "" AND $aProfiles[$i][0] <> $sProfileName Then ContinueLoop $sContent = FileRead($aProfiles[$i][1] & "\" & $sFFConfigFile) If @error Then Return SetError(2, 0, 0) If $sSettingValue = Null Then $sNewContent = StringRegExpReplace($sContent, '(?mi)^\Quser_pref("' & $sSettingName & '"\E\V+\R', '') Else $sNewContent = StringRegExpReplace($sContent, '(?mi)^\Quser_pref("' & $sSettingName & '", \E\K.+(?=\);$)', $sSettingValue) If NOT @extended Then $sNewContent = StringRegExpReplace($sContent, ";\K\v*$", @CRLF & 'user_pref("' & $sSettingName & '", ' & $sSettingValue & ');' & @CRLF) EndIf $hPrefs = FileOpen($aProfiles[$i][1] & "\" & $sFFConfigFile, 2) If $hPrefs = -1 Then Return SetError(2, 0, 0) FileWrite($hPrefs, $sNewContent) FileClose($hPrefs) Next Return 1 EndFunc ; #FUNCTION# ==================================================================================================================== ; Name ..........: _FF_GetProfileList ; Description ...: List the Firefox profiles in a 2D array ; Syntax ........: _FF_GetProfileList() ; Parameters ....: None ; Return values .: Success - Returns a 2D array (see remarks) ; Failure - Returns 0 and set @error to 1 (unable to list the Firefox profiles) ; Author ........: jguinch ; Remarks........: The array returned is two-dimensional and is made up as follows: ; $aArray[0][0] : Number of profiles ; $aArray[0][1] : Default profile index in the array ; $aArray[1][0] : 1st profile name ; $aArray[1][1] : 1st profile path ; ... ; $aArray[n][0] : nth profile name ; $aArray[n][1] : nth profile path ; =============================================================================================================================== Func _FF_GetProfileList() Local $sProfileName, $sIsRelative, $sProfilePath, $aResult[10][2] = [[0]] Local $sFFAppDataPah = @AppDataDir & "\Mozilla\Firefox" Local $sProfiles = $sFFAppDataPah & "\profiles.ini" Local $aSections = IniReadSectionNames($sProfiles) If @error OR NOT IsArray($aSections) Then Return SetError(1, 1, 0) For $i = 1 To $aSections[0] If $aSections[$i] <> "General" Then $sProfileName = IniRead($sProfiles, $aSections[$i], "Name", "") $sIsRelative = IniRead($sProfiles, $aSections[$i], "IsRelative", "") $sProfilePath = IniRead($sProfiles, $aSections[$i], "Path", "") If $sIsRelative = "" OR $sProfilePath = "" OR $sProfileName = "" Then ContinueLoop If Number($sIsRelative) = 1 Then $sProfilePath = _PathFull( @AppDataDir & "\Mozilla\Firefox\" & StringReplace($sProfilePath, "/", "\") ) If NOT FileExists($sProfilePath & "\prefs.js") Then ContinueLoop $aResult[0][0] += 1 If $aResult[0][0] = UBound($aResult) Then Redim $aResult[ UBound($aResult) * 2][2] If Number(IniRead($sProfiles, $aSections[$i], "Default", "error")) = 1 Then $aResult[0][1] = $aResult[0][0] $aResult[ $aResult[0][0] ][0] = $sProfileName $aResult[ $aResult[0][0] ][1] = $sProfilePath EndIf Next If NOT $aResult[0][1] AND $aResult[0][0] > 0 Then $aResult[0][1] = 1 Redim $aResult [ $aResult[0][0] + 1 ][2] Return $aResult EndFunc
    1 point
×
×
  • Create New...