Big Update
Added more functions to DLL Simplified Injector Added Screenshot Added some more functions to dbg.py module
This commit is contained in:
		
							parent
							
								
									2a30b53cfb
								
							
						
					
					
						commit
						0461764566
					
				
					 8 changed files with 80 additions and 37 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							|  | @ -1,12 +1,10 @@ | |||
|  | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| `.\Injector.exe dll .\ScrapHack.dll <PATH_TO_SCRAP.exe>` | ||||
| e.g: | ||||
| `.\Injector.exe dll .\ScrapHack.dll "D:\Games\Deep Silver\Scrapland\Bin\Scrap.exe"` | ||||
| 
 | ||||
| or inject into a running instance of the game using your DLL-Injector of choise like so: | ||||
| 
 | ||||
| `.\Injector.exe dll .\ScrapHack.dll <PID>` | ||||
| 0. Build Project | ||||
| 1. Run Injector `.\Injector.exe` | ||||
| 2. Run Game | ||||
| 3. Wait ~10 Seconds for game to load and Injector to works its magic | ||||
| 
 | ||||
| 
 | ||||
| Currently the Injected DLL creates a thread that waits for you to press F12 and then writes something to the ingame console | ||||
										
											Binary file not shown.
										
									
								
							|  | @ -78,6 +78,8 @@ | |||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath> | ||||
|     <LibraryPath>$(SolutionDir)lib;$(LibraryPath)</LibraryPath> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|  | @ -126,6 +128,7 @@ | |||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||||
|  | @ -162,6 +165,5 @@ | |||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
|   <ImportGroup Label="ExtensionTargets"> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="ExtensionTargets" /> | ||||
| </Project> | ||||
|  | @ -1,2 +1,6 @@ | |||
| #pragma once | ||||
| auto scrap_log = (int(_cdecl *)(int, const char*))0x4134C0; | ||||
| #define WORLD 0x7FE944 | ||||
| #define PY_MODS 0x79C698 | ||||
| 
 | ||||
| auto scrap_log = (int(_cdecl*)(int, const char*))0x4134C0; | ||||
| auto scrap_exec = (void(_cdecl*)(const char*))0x5a8390; | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ScrapHacks/img/Screenshot_1.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ScrapHacks/img/Screenshot_1.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 853 KiB | 
							
								
								
									
										91
									
								
								lib/dbg.py
									
										
									
									
									
								
							
							
						
						
									
										91
									
								
								lib/dbg.py
									
										
									
									
									
								
							|  | @ -4,10 +4,15 @@ import quickconsole | |||
| import MissionsFuncs | ||||
| import SScorer | ||||
| import Menu | ||||
| import sys | ||||
| QC = quickconsole | ||||
| MF = MissionsFuncs | ||||
| last_frame = None | ||||
| 
 | ||||
| sys.path.append(".\\pylib\\Lib") | ||||
| sys.path.append(".\\pylib\\Libs") | ||||
| sys.path.append(".\\pylib") | ||||
| 
 | ||||
| 
 | ||||
| def reload(): | ||||
|     sys.settrace(None) | ||||
|  | @ -15,9 +20,10 @@ def reload(): | |||
| 
 | ||||
| 
 | ||||
| def dgb_info(): | ||||
|     txt =`last_frame` | ||||
|     SScorer.SetLabelText(txt, Scrap.GetTime()+0.1) | ||||
|     Scrap.AddScheduledFunc(Scrap.GetTime()+0.1, dgb_info, (), "dbg_info") | ||||
|     SScorer.SetLabelText(`last_frame`, Scrap.GetTime() + 0.1) | ||||
|     Scrap.DeleteScheduledFuncs("dbg.dbg_info") | ||||
|     Scrap.DeleteScheduledFuncs("dbg.dbg_info") | ||||
|     Scrap.AddScheduledFunc(Scrap.GetTime()+0.1, dgb_info, (), "dbg.dbg_info") | ||||
| 
 | ||||
| 
 | ||||
| def crazy(): | ||||
|  | @ -117,14 +123,6 @@ def helpfunc(func): | |||
|     print "    "+func.__doc__ | ||||
| 
 | ||||
| 
 | ||||
| for module in sys.builtin_module_names: | ||||
|     if module[0] == "S": | ||||
|         print "Loading "+module | ||||
|     exec("import " + module) | ||||
| 
 | ||||
| sys.settrace(None) | ||||
| 
 | ||||
| 
 | ||||
| def trace(frame, event, arg): | ||||
|     global last_frame | ||||
|     if event != "call": | ||||
|  | @ -189,10 +187,10 @@ def helplib(): | |||
|                 continue | ||||
|             if hasattr(value, "__doc__"): | ||||
|                 if value.__doc__: | ||||
|                     log("- "+name+":") | ||||
|                     log("- "+name+":"+repr(value)) | ||||
|                     log("      "+value.__doc__) | ||||
|                 else: | ||||
|                     log("- "+name+": ???") | ||||
|                     log("- "+name+":"+repr(value)) | ||||
|             else: | ||||
|                 log("- "+name+": "+repr(value)) | ||||
|         log("\n") | ||||
|  | @ -218,8 +216,6 @@ def enable_all_conv(): | |||
|         E.Invulnerable = 0 | ||||
|         E.Life = 100 | ||||
|         E = Scrap.GetEntity(E.NextInSlot) | ||||
|     print(len(CharConversor.ConversionChars)) | ||||
|     print "Done!" | ||||
| 
 | ||||
| 
 | ||||
| def goto(name=None): | ||||
|  | @ -249,8 +245,8 @@ def nuke(): | |||
| 
 | ||||
| 
 | ||||
| def become(name): | ||||
|     enable_all_conv() | ||||
|     import CharConversor | ||||
|     enable_all_conv() | ||||
|     me = Scrap.UsrEntity(0) | ||||
|     ent = Scrap.GetEntity(name) | ||||
|     if ent: | ||||
|  | @ -277,13 +273,8 @@ def movie(MovieName="Movie/Movie"): | |||
|     Scrap.AddScheduledFunc(NextTime, movie, (Speed, MovieName, NextTime)) | ||||
| 
 | ||||
| 
 | ||||
| def park(): | ||||
|     me = Scrap.UsrEntity(0) | ||||
| 
 | ||||
| 
 | ||||
| def find(filt="*"): | ||||
|     Scrap.StartDummySearch(filt, 1) | ||||
|     dummy = 1 | ||||
|     dummy = Scrap.StartDummySearch(filt, 1) | ||||
|     while dummy: | ||||
|         dummy = Scrap.NextDummySearch() | ||||
|         print dummy | ||||
|  | @ -300,12 +291,57 @@ def getall(): | |||
|         E = Scrap.GetEntity(E.NextInSlot) | ||||
| 
 | ||||
| 
 | ||||
| def god(): | ||||
|     e = Scrap.UsrEntity(0) | ||||
|     QC.godcall(None, (1, 1, 1, 1, 1, 1)) | ||||
|     Scrap.AddScheduledFunc(Scrap.GetTime()+0.1, god, (), 'dbg.god') | ||||
| def god(e=None): | ||||
|     if e == None: | ||||
|         e = Scrap.UsrEntity(0) | ||||
|     if e: | ||||
|         if e.IsType("Car"): | ||||
|             e.Ammo00 = SWeap.GetFAmmo(0, "Max") | ||||
|             e.Ammo01 = SWeap.GetFAmmo(1, "Max") | ||||
|             e.Ammo02 = SWeap.GetFAmmo(2, "Max") | ||||
|             e.Ammo03 = SWeap.GetFAmmo(3, "Max") | ||||
|             e.WeapList = "63,63,63,63,63,63,1" | ||||
|             e.MaxLife = e.MinLife | ||||
|             if e.Life > e.MaxLife: | ||||
|                 e.Life = e.MaxLife | ||||
|             e.CMStamp = 0 | ||||
|             e.FireStamp = 0 | ||||
|             e.BoostTime = 0 | ||||
|         elif e.IsType("WalkChar"): | ||||
|             e.Energy = 1 | ||||
|         e.Invulnerable = 1 | ||||
|     Scrap.DeleteScheduledFuncs("dbg.god") | ||||
|     Scrap.DeleteScheduledFuncs("dbg.god") | ||||
|     Scrap.AddScheduledFunc(Scrap.GetTime(), god, (e,), "dbg.god") | ||||
| 
 | ||||
| 
 | ||||
| def ultranuke(): | ||||
|     nuke() | ||||
|     Scrap.DeleteScheduledFuncs("dbg.ultranuke") | ||||
|     Scrap.DeleteScheduledFuncs("dbg.ultranuke") | ||||
|     Scrap.AddScheduledFunc(Scrap.GetTime(), ultranuke, | ||||
|                            (), "dbg.ultranuke") | ||||
| 
 | ||||
| 
 | ||||
| def brake(): | ||||
|     if me: | ||||
|         me.Vel = (0, 0, 0) | ||||
| 
 | ||||
| 
 | ||||
| for _ in range(1024): | ||||
|     Scrap.DeleteScheduledFuncs("dbg.dbg_info") | ||||
|     Scrap.DeleteScheduledFuncs("dbg.god") | ||||
|     Scrap.DeleteScheduledFuncs("dbg_info") | ||||
| 
 | ||||
| 
 | ||||
| for module in sys.builtin_module_names: | ||||
|     if module[0] == "S": | ||||
|         print "Loading "+module | ||||
|     exec("import " + module) | ||||
| 
 | ||||
| sys.settrace(None) | ||||
| 
 | ||||
| me = Scrap.UsrEntity(0) | ||||
| notrace() | ||||
| helplib() | ||||
| # settrace() | ||||
|  | @ -314,5 +350,8 @@ enable_all_conv() | |||
| god() | ||||
| Scrap.Set("debug", 3) | ||||
| Scrap.Set("ShowConsoleLog", 1) | ||||
| Scrap.Set("AlwaysFlushLog", 1) | ||||
| Scrap.Set("PythonExecute", "import dbg") | ||||
| exec("import QuickConsole;QuickConsole.debug=sys.modules['dbg']") | ||||
| 
 | ||||
| print "Debug Module loaded" | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue