Leaderboard
Popular Content
Showing content with the highest reputation on 03/10/2016 in all areas
-
Even if the code was secure (depending on the degree) and difficult to decompile, there are still debuggers. VMs are a good way to debug, test, analyze and reverse engineer software--malware for example--and control risk. Now-a-days malware has been designed to try and avoid execution by detecting if it is running in a VM. While an interesting safeguard (for the coder), there are both perks for and against this tactic. One, people who are really trying to reverse engineer the code will analyze their hearts out and take what measures they need to get the job done (or at least best effort). Second, most VM checks are not very robust and easily spoofed which renders some malware useless. I guess my point is bottom line, there is nothing i am aware of that is intrinsic about executing code in a VM within itself that makes the code more protected.1 point
-
Thank you guys for your responses.. really. But I have already solved this problem with jguinch's functions. They just had a slight bug but from what I hear he has fixed them now. <31 point
-
No, it is a general "problem". But not only with AutoIt but with all scripting languages. Search the forum for "protect script" and you will find a lot of discussions regarding this subject. https://www.autoitscript.com/forum/search/?&q=protect%20script&search_in=titles1 point
-
As I posted in the other thread you can't save your script from being decompiled. You can only make it harder to read. VM or not VM does not matter.1 point
-
Yo're wrong. Your AutoIt compiled script can be decompiled and deobfuscated to look exactly how you wrote it, there is absolutely nothing you can do about that. Nothing.1 point
-
1 point
-
1 point
-
It can be both. This is a very confusing part of the VS interface. I found this blog helpful.1 point
-
No, Obfuscator does not decode your script. It worked the other way round: It makes your script harder to read. As you stated: It makes the script unreadable by changing variable and function names etc. But it isn't 100% save as it might be possible to re-translate the script into a readable form by other programs.1 point
-
The Obfuscator tool was deprecated as well as it was hard to maintain and "only" made it harder to read the script.1 point
-
Well that went from oranges to apples rather quickly. Here is the answer... You cannot protect your script, at all, stop wasting your time.1 point
-
It is a massive undertaking though, but one which will be immensely popular if it is completed. GUI stuff will be most challenging thing I'd expect.1 point
-
How can i send Enter in textarea
cris12 reacted to crackdonalds for a topic
you can try: "Hey" & @CR & "This" & @CR & "works! ")1 point -
Here is just some usefull script analyzer: #include <ColorConstants.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <TreeViewConstants.au3> #include <WindowsConstants.au3> #include <File.au3> #include <Array.au3> ; just put a FileFullPath to one of your project _UsedInclude_API() _GetAllDependencies("c:\Program Files (x86)\AutoIt3\SciTE\SciTE Jump\SciTE Jump.au3") _UsedInclude_API() _GetAllDependencies("c:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3") _UsedInclude_API() _GetAllDependencies("c:\Program Files (x86)\AutoIt3\SciTE\SciTEConfig\SciteConfig.au3" ) _UsedInclude_API() _GetAllDependencies(@ScriptFullPath) Func _GetAllDependencies($sFileToCheck) GUICreate("My GUI with treeview", 500, @DesktopHeight - 40) Local $idTreeview = GUICtrlCreateTreeView(6, 6, 488, @DesktopHeight - 40 - 12, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) Local $idDisplayitem = GUICtrlCreateTreeViewItem($sFileToCheck, $idTreeview) GUICtrlSetColor(-1, $COLOR_GREEN) __UsedIncludeToTreeView($sFileToCheck, $idDisplayitem) Local $hItem = GUICtrlGetHandle($idDisplayitem) GUICtrlSendMsg($idTreeview, $TVM_EXPAND, $TVE_TOGGLE, $hItem) GUISetState(@SW_SHOW) Local $idMsg ; Loop until the user exits. While 1 $idMsg = GUIGetMsg() Select Case $idMsg = $GUI_EVENT_CLOSE ExitLoop EndSelect WEnd EndFunc ;==>_GetAllDependencies Func _GetUsedIncludeToArray($sAU3Content) Local $aIncludes = StringRegExp($sAU3Content, '(?im)^\s*#include\s?[''""<](.*)\.au3[''"">]', 3) If @error Then Return SetError(@error, @extended, '') Else Return SetError(0, 0, $aIncludes) EndIf EndFunc ;==>_GetUsedIncludeToArray Func __UsedIncludeToTreeView($sFileToCheck, $idTreeview_ref) $hFile = FileOpen($sFileToCheck, $FO_READ) $sAU3Content = FileRead($hFile) FileClose($hFile) Local $aIncludes = _GetUsedIncludeToArray($sAU3Content) If @error Then Return SetError(@error, @extended, '') Else Local $idDisplayitem, $iNumberOfOccurrences = 0 For $iInclude_Idx = 0 To UBound($aIncludes) - 1 $iNumberOfOccurrences = _UsedInclude_API($aIncludes[$iInclude_Idx]) If $iNumberOfOccurrences = 0 Then $idDisplayitem = GUICtrlCreateTreeViewItem($aIncludes[$iInclude_Idx], $idTreeview_ref) __UsedIncludeToTreeView(_GetDir($sFileToCheck) & $aIncludes[$iInclude_Idx] & '.au3', $idDisplayitem) ElseIf $iNumberOfOccurrences = 1 Then $idDisplayitem = GUICtrlCreateTreeViewItem($aIncludes[$iInclude_Idx] & ' (Was used before: once)', $idTreeview_ref) GUICtrlSetColor(-1, $COLOR_RED) ElseIf $iNumberOfOccurrences = 2 Then $idDisplayitem = GUICtrlCreateTreeViewItem($aIncludes[$iInclude_Idx] & ' (Was used before: twice)', $idTreeview_ref) GUICtrlSetColor(-1, $COLOR_PURPLE) ElseIf $iNumberOfOccurrences > 2 Then $idDisplayitem = GUICtrlCreateTreeViewItem($aIncludes[$iInclude_Idx] & ' (Was used before more then twice)', $idTreeview_ref) GUICtrlSetColor(-1, $COLOR_BLUE) EndIf Next EndIf EndFunc ;==>__UsedIncludeToTreeView Func _UsedInclude_API($sIncludeFileName = Default) Local Static $sIncludeAPI_Static = '|' ; reset If $sIncludeFileName = Default Then $sIncludeAPI_Static = '|' Return EndIf StringReplace($sIncludeAPI_Static, '|' & $sIncludeFileName & '|', '|' & $sIncludeFileName & '|') Local $iNumberOfReplacements = @extended $sIncludeAPI_Static &= $sIncludeFileName & '|' Return SetError(0, 0, $iNumberOfReplacements) EndFunc ;==>_UsedInclude_API Func _GetDir($sFileFullPath) Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" Local $aPathSplit = _PathSplit($sFileFullPath, $sDrive, $sDir, $sFileName, $sExtension) Return $sDrive & $sDir EndFunc ;==>_GetDir Have fun. mLipok1 point
-
compile msstyles
zxtnt09 reacted to InunoTaishou for a topic
It could be that it's working correctly but the values used in the msstyles file you're using are incomplete or not configured correctly, or it's missing some bmp files. Try a different msstyles1 point -
No. From what you posted so far it is impossible to suggest a solution. As AutoBert requested: Post a small reproducer script.1 point
-
what's msstyles? Please make a small runable reproducer which shows error. Attach the used file(s) for skinning.1 point
-
Sorry I totally forgot about this. the actual function was exported, except it was not implemented. It is now. $V7Voldll = "W7VVol.dll" _SetMasterVolume(77) MsgBox(0, "Result", _GetMasterVolume()) Func _SetMasterVolume($vol); 0 - 100 DllCall($V7Voldll, 'long', 'setvol', 'float', $vol / 100) If @error Then Exit MsgBox(0, "Error", @error) EndIf EndFunc ;==>_SetMasterVolume Func _GetMasterVolume() $aDllCall = DllCall($V7Voldll, 'float', 'getvol') If @error Then Exit MsgBox(0, "Error", @error) EndIf Return Round($aDllCall[0], 2) * 100 EndFunc ;==>_GetMasterVolumeRenamed W7VVol (Windows 7 Vista Volume) W7VVol.rar1 point
-
Had a bit of time, so converted some code I found into a dll. Original code is written by LARRY OSTERMAN http://blogs.msdn.com/b/larryosterman/ includes example $V7Voldll = "V7Vol.dll" $aDllCall = DllCall($V7Voldll, 'float', 'getvol') If @error Then Exit MsgBox(0,"Error",@error) EndIf MsgBox(0,"Result",Round($aDllCall[0],2) * 100)V7Vol.rar1 point