Name: dynity
Owner: HearthSim
Description: Load an assembly in Unity at runtime
Created: 2016-04-28 01:44:28.0
Updated: 2018-01-06 02:10:29.0
Pushed: 2016-04-28 05:22:43.0
Homepage: null
Size: 261
Language: C++
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This is a quick proof of concept runtime assembly loader for Hearthstone.
It primarily functions by calling exports of mono.dll to load a new assembly and run a static method.
It also has a simple hook that allows debugging Hearthstone in the Visual Studio Tools for Unity. To set this up:
dynity
solution to produce Inject.exe and dynity.dll.Test
solution. You'll need to edit the paths in populate_lib.bat
and the Post-Build Event to point to your Hearthstone directory, and then run
populate_lib to copy dlls from Hearthstone to the lib folder.You can attach a
debugger now if you want
. Run Inject.exe, then once the console window for
dynity appears (it should read mono successfully loaded
), press Ok.Test
solution, go to Debug > Attach Unity Debugger.Input IP
, the default port of 56000 is correct, so just press Ok.Test.FrameBehaviour:Update
)
method, and it should be hit. From there, I was able to use QuickWatch to look
at everything in Assembly-CSharp. Note, however, that you are not be able to
place breakpoints in Assembly-CSharp, as there is no .mdb file for it. The
requirement of the .mdb file to place breakpoints is the reason for pdb2mdb's
inclusion as a post-build event.Debugging in Visual Studio Tools for Unity
dynity is MIT licensed
pdb2mdb (https://gist.github.com/jbevain/ba23149da8369e4a966f)
The source is available in the mono project repository.
mono bindings