SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Silent Hunter 3 - 4 - 5 > SH5 Mods Workshop
Forget password? Reset here

Reply
 
Thread Tools Display Modes
Old 02-27-11, 03:23 PM   #1
THE_MASK
Ace of the deep .
 
THE_MASK's Avatar
 
Join Date: Jan 2006
Posts: 9,226
Downloads: 901
Uploads: 73


Default

This is prolly lame , but with this could you click on a button in game and bring up google earth and look at your navmarks on google earth while playing the game .
THE_MASK is offline   Reply With Quote
Old 02-27-11, 03:31 PM   #2
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Quote:
Originally Posted by sober View Post
This is prolly lame , but with this could you click on a button in game and bring up google earth and look at your navmarks on google earth while playing the game .
I wouldn't say it's not possible but it would be hard to do. It could be done though. You could do this easier with a game's .py file
TheDarkWraith is offline   Reply With Quote
Old 02-27-11, 03:33 PM   #3
THE_MASK
Ace of the deep .
 
THE_MASK's Avatar
 
Join Date: Jan 2006
Posts: 9,226
Downloads: 901
Uploads: 73


Default

Quote:
Originally Posted by TheDarkWraith View Post
I wouldn't say it's not possible but it would be hard to do. It could be done though. You could do this easier with a game's .py file
You can already look at your sunk ship icons on google earth if you go on the official silent hunter 5 site . Not while playing the game though .
THE_MASK is offline   Reply With Quote
Old 02-27-11, 06:19 PM   #4
THE_MASK
Ace of the deep .
 
THE_MASK's Avatar
 
Join Date: Jan 2006
Posts: 9,226
Downloads: 901
Uploads: 73


Default

So theoretically you could link 2 diffrent games up together . I could be playing SH5 , walk thru a door in the bunker and be instantly playing COD 5 entering a village . Walk thru a door in COD 5 that was coded in and be back in the SH5 bunker . Just a lame example .
THE_MASK is offline   Reply With Quote
Old 02-27-11, 06:29 PM   #5
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Quote:
Originally Posted by sober View Post
So theoretically you could link 2 diffrent games up together . I could be playing SH5 , walk thru a door in the bunker and be instantly playing COD 5 entering a village . Walk thru a door in COD 5 that was coded in and be back in the SH5 bunker . Just a lame example .
Theoretically yes but that would be hard because you'd have to share process memory between the two apps (games). That is beyond me currently Maybe someday in the future but currently I'm not able to share memory between processes.
TheDarkWraith is offline   Reply With Quote
Old 02-28-11, 03:00 AM   #6
Zedi
Sea Lord
 
Join Date: Mar 2010
Posts: 1,845
Downloads: 184
Uploads: 2
Default

Quote:
Originally Posted by sober View Post
You can already look at your sunk ship icons on google earth if you go on the official silent hunter 5 site . Not while playing the game though .
This is just awesome and I cannot understand why Ubi not implemented this map in the game now that we have to be online to play. I really miss something like this, it would be so cool to see your activity history on map and also see other players/captains location and recent activity.

Is no way to "suck" this data from g2w.ubi.com and make it available in the game?!
Zedi is offline   Reply With Quote
Old 02-28-11, 04:01 AM   #7
h.sie
Admiral
 
Join Date: Jul 2008
Posts: 2,192
Downloads: 131
Uploads: 0


Default

@TDW: Very interesting and promising thread.

Until now I directly injected Hex Code into sh3.exe and some .act files in order to do some realism changes and additions. See this thread for details:

http://www.subsim.com/radioroom/showthread.php?t=174225

I still stick on direct HexCode Injection because I am not very familiar to DLL based code injection.

My question to you is: Does DLL code injection also work for .act files, which are loaded into different memory locations every time a game is started because of address space layout randomization (ASLR) in newer 64 Bit systems?

By the way: In SH3, DLL code injection seems to be very easy, just place your .act file into the sh3 install directory and it will be loaded automatically by sh3.exe when it starts, regardless of it's name.

Thanks very much and good luck!
h.sie
__________________
My Mediafire page: http://www.mediafire.com/hsie

Last edited by h.sie; 02-28-11 at 07:22 AM.
h.sie is offline   Reply With Quote
Old 02-28-11, 09:45 AM   #8
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Quote:
Originally Posted by h.sie View Post
My question to you is: Does DLL code injection also work for .act files, which are loaded into different memory locations every time a game is started because of address space layout randomization (ASLR) in newer 64 Bit systems?

By the way: In SH3, DLL code injection seems to be very easy, just place your .act file into the sh3 install directory and it will be loaded automatically by sh3.exe when it starts, regardless of it's name.

Thanks very much and good luck!
h.sie
Every Silent Hunter game will load ANY .act file it finds in it's root directory. What I'm not sure is whether those .act files have a DLLMain function in them (or something similar) and if they do whether it gets called or not by the game or the Windows loader. When the Windows loader adds a library (module) to a process it calls DLLMain on the module when it's loaded. DLLMain is used to initialize the dll (can be used to do other things also).

Your question about DLL code injection for .act files I don't understand. Maybe you're asking if DLL code injection places the loaded module at random memory locations everytime it's injected? If so, the answer is yes. The Windows loader determines where the module will be placed in memory. Now some will say well how can you inject new code if the memory address is always changing? The answer is simple. You hook into the main game code and point it to your code. You have DLLMain do the hook into the main game code (suspend the main game thread - add hook - resume main game thread).
TheDarkWraith is offline   Reply With Quote
Old 02-28-11, 10:32 AM   #9
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

The 32bit version of SH5 injector has a flaw in it. For those who have downloaded it please do not use! The problem with it is the incorrect RVA is given for the LoadLibrary and FreeLibrary functions in kernel32.dll.

Normally one calls the Win32 API function GetProcAddress to get the address of the function they want to call in a dll. I had problems getting that working correctly with 64bit OS so I found another way to do it. Since I know the base address of kernel32.dll I just add an offset to that base to get to the function(s) I want (I know this offset from using dumpbin on kernel32.dll). Now here's the problem: Win7 64bit uses WoW (Windows 32 on Windows 64) to enable 32bit apps to run in the 64bit environment. When in WoW mode, kernel32.dll is different from the 32bit version of kernel32.dll (there are two versions of it on 64bit). This means the offsets are also different for the functions I need I'll be revising the 32bit version with the correct offsets here soon.

EDIT:

problem has been corrected. Now if someone can verify that the 32bit version works I would greatly appreciate it I know the 64bit version works correctly as I run a 64bit OS.

Last edited by TheDarkWraith; 02-28-11 at 10:45 AM.
TheDarkWraith is offline   Reply With Quote
Old 01-05-12, 04:27 PM   #10
vanjast
Sea Lord
 
Join Date: Jun 2006
Location: Somewhere else now
Posts: 1,740
Downloads: 825
Uploads: 4
Default

Quote:
Originally Posted by TheDarkWraith View Post
You have DLLMain do the hook into the main game code (suspend the main game thread - add hook - resume main game thread).
oooo... naughty boy I thought you were doing this when I saw you on the Asm websites sometime ago. I wouldn't call it DLL injection, but DLL hijack/detour.

Maybe UBI's copyright infringement never went so far into these 'dynamics', then that's their problem....and I don't think they have the expertise to cover all windows's 'gaps'.

vanjast is offline   Reply With Quote
Old 02-27-11, 05:56 PM   #11
Krauter
Ocean Warrior
 
Join Date: Aug 2007
Location: Montreal, Canada
Posts: 2,983
Downloads: 102
Uploads: 1
Default

Could this be done to earlier Silent Hunter games as well? Or would it be possible to take features missing/taken out of SH5 that were in 3 & 4 and put them back in?

(New Ships?? Switch over from GR2 Files??)
__________________
Quote:
The U.S almost went to war over some missles in Cuba... Thank god the X-Men were there to save us right?
Krauter is offline   Reply With Quote
Old 02-27-11, 06:05 PM   #12
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Quote:
Originally Posted by Krauter View Post
Could this be done to earlier Silent Hunter games as well? Or would it be possible to take features missing/taken out of SH5 that were in 3 & 4 and put them back in?

(New Ships?? Switch over from GR2 Files??)
I can make it work with any application. I have a version I made that allows one to inject DLLs into ANY process (plus it does a lot more than that ). So yes I can make it work for SH3/4

Anything is possible when you are able to inject DLLs into a running process. The DLL being injected defines what the new features are or removes some functionality or ??? Really you can do anything with it that you can code.
TheDarkWraith is offline   Reply With Quote
Old 11-29-14, 03:33 AM   #13
thufirhawa
Bilge Rat
 
Join Date: Oct 2011
Posts: 1
Downloads: 49
Uploads: 0
Default

Sorry for this necro-quote/post but i was wondering ...

Quote:
Originally Posted by TheDarkWraith View Post
I can make it work with any application. I have a version I made that allows one to inject DLLs into ANY process (plus it does a lot more than that ). So yes I can make it work for SH3/4

Quote:
Thus all the .py files have to be compiled at game start and this takes time to do.
The Python language supports pre-compiled files but SH5 doesn't
I just saw an article about shedskin
This tool translate pure, but implicitly statically typed Python (2.4-2.6) programs into optimized C++ ( and dll if i'm correct )

Can we use this to improve the horrendous loading time and cpu usage of SHV ?
Is such a feat possible, if so where do I begin ?
thufirhawa is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 08:36 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 1995- 2025 Subsim®
"Subsim" is a registered trademark, all rights reserved.