XboxHacker BBS
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
May 23, 2013, 03:41:52 AM


Login with username, password and session length


Pages: 1
  Print  
Author Topic: Getting a DLL to load at 0x82000000?  (Read 706 times)
dannyridz91
Newbie
*
Posts: 3


View Profile
« on: May 25, 2012, 10:35:13 AM »

Hey all didn't want to risk posting in the software hacking (technical) forum so I thought i would try here

Basically I have coded a dll in visual studio using the xbox 360 sdk
Whenever it compiles the load address/base address (which one?) is 0x88000000 - not supported by XePatcher

I'm trying to get it to set the address to 0x82000000 or 0x92000000

The SDK says if a dll image has a base address of less than 0x10000000 it will be loaded to either 0x82000000 or 0x92000000, depending on the memory page size of the image.

I honestly cannot set anything below without the invalid address error upon building the project.

Thanks for any help Smiley

Logged
Dwack
Member
**
Posts: 39


View Profile
« Reply #1 on: May 25, 2012, 02:36:34 PM »

I use this for my DLLs. I never really have a problem. IIRC the address will have to be changed if you build as a Title Dll(remove the SysDll declaration).
I don't remember though, I usually always build as a sysdll and use DL to load it.

Code:
<?xml version="1.0"?>
<xex>
  <format>
    <compressed/>
  </format>

  <mediatypes>
    <allpackages/>
  </mediatypes>

  <gameregion>
    <all/>
  </gameregion>

  <sysdll/>

  <version major="0x02" minor="0x00" build="0x397F" qfe="0x00"/>.

  <mfgmode mode = "aware"/>

  <baseaddr addr = "0x91C00000"/>

</xex>
Logged
dannyridz91
Newbie
*
Posts: 3


View Profile
« Reply #2 on: May 30, 2012, 04:45:08 PM »

I use this for my DLLs. I never really have a problem. IIRC the address will have to be changed if you build as a Title Dll(remove the SysDll declaration).
I don't remember though, I usually always build as a sysdll and use DL to load it.

Code:
<?xml version="1.0"?>
<xex>
  <format>
    <compressed/>
  </format>

  <mediatypes>
    <allpackages/>
  </mediatypes>

  <gameregion>
    <all/>
  </gameregion>

  <sysdll/>

  <version major="0x02" minor="0x00" build="0x397F" qfe="0x00"/>.

  <mfgmode mode = "aware"/>

  <baseaddr addr = "0x91C00000"/>

</xex>

Thanks Dwack,

I can get the dll base address to 0x82000000 in the project settings under the base address under linker|advanced

The project is set to dynamic library (.xex)

With DllMain instead of _cdecl main

Under Linker:

Entry Point: DllMain
Base Address: 0x82000000

I set dll main as the entry point or I get loads of errors - but now when i load the dll it gives a black screen and freezes the console.

I am trying to load this dll for Forza making patches to the default.xex with xepatcher

The DLL by default maps to 0x88000000 which XePatcher presumably doesn't support - loads of errors about ranges.

Hope you can understand at least a sentence of that :/

Thanks Smiley











 

Logged
Dwack
Member
**
Posts: 39


View Profile
« Reply #3 on: May 30, 2012, 05:36:38 PM »

If you're trying to load the DLL along with a title xex make the DLL a TitleDll, then just use a launcher to load the game and dll into memory.


0x82000000 is the load address for a Title xex, I don't know why you would want to load a Dll there?
Logged
dannyridz91
Newbie
*
Posts: 3


View Profile
« Reply #4 on: May 30, 2012, 05:49:18 PM »

Not specifically 0x82000000 more like 84000000 or something. For a launcher is it xeloadimage or something along those lines?
Logged
Pages: 1
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM