Loading a script now checks its signature and if no valid signature is found, the user is prompted to whitelist it
….Dequeue. Whoops. :( Thread safety tweak to RPCChannel
…t have to be stored in prefs.db The default table converter should handle removed columns now A script can request references to all loaded scripts that implement a given interface or derive from a given type
… invoked with MEM_RELEASE. Whoops. No reason to use strlen in rpcSend. Fix a small potential leak in RPCChannel.
…rocess so that when they are reloaded, they can terminate any running attached tasks
…d the target process before injecting, so that when our payload thread starts, nothing else is running, and once it's alive we resume the rest of the process so the payload can interact with it. This helps address some races.
… processes Fixed some bugs in the payload that could cause crashes if it was loaded into a process that had not completed initializing python. Attempt to temporarily disable DLL_THREAD_ATTACH when starting the payload thread, because some libraries can become confused by it.
…o a script name
…ency and shootblues.OptionalDependency functions The status window will not run out of stack when encountering a circular dependency
…Store since calling 'Preferences.Dirty' would otherwise set the dirty signal before it's being observed by the task in some cases. This ensures that preferences are always flushed at script startup. Don't ignore function calls made before a process is ready. Instead, defer them until the process is ready. Dispose process objects more consistently.
Shoot Blues will now work when run as a limited user, though it can only interact with EVE processes also running as that user Both the payload and Shoot Blues attempt to change the windows message filter so that RPC messages can be sent in both directions If an RPC message fails to be sent by Shoot Blues, an exception will be thrown instead of a silent failure Request debug privilege at startup so that Process.HasExited works ProcessWatcher will use a timer when WMI event notifications are not available (running as limited user) Detect when another copy of shoot blues is already running
…e behavior to make it easier to debug Fix a memory leak related to freeing of remote memory regions
… in your prefs Show a message box if an error occurs in the main task
Profiles are now given the option to delay the loading of user scripts until the remote python environment is in a good state Explicitly check to ensure that all the scripts we tried to load were loaded when performing a ReloadModules RPC, so that we don't get confusing failures later if one failed silently
…arious race conditions and ordering bugs. CallFunction will now throw if you attempt to call a function on a module that is not loaded. CallFunction will now throw if you attempt to call a function within a process that is busy loading scripts. Preference management is now encapsulated in a helper class. The ReloadScripts RPC call now returns a result so you can wait for it to complete.
…rrectly to parent tasks (because this was broken, failures in function calls were sometimes ignored) When loading managed scripts into a process or unloading them from a process we now perform the operation as a background task so that a failure in one script does not prevent the loading of other scripts