Jump to content
Returning Members: Password Reset Required ×

Recommended Posts

Posted

I feel tired!!!!!!!!!
 

It requires a lot of time and thinking, and I may not have reached that level of technology yet, so it is difficult to produce any results, taking up a lot of my time.
First, let me introduce this project.
This project originated from an open-source D3D9HOOK project on GitHub
It uses EASYOOK injection and intercepts the D3D9 virtual function table
Then use SharpDX to draw the content.
I have tested this process and it works perfectly without any issues.
What can you do with it?
1. You can use it to redraw a UI and then integrate it with your own server. (But it requires you to have a lot of time)
2. You can do some simple drawings, such as blood bars, login interfaces, and so on.
What I want to achieve, everyone can study it together.
In fact, NetDragon's C3Engine has been publicly available for download for a period of time, and it contains some header files.
By analyzing the latest client through IDAePr, one can analyze and infer the way functions are called.
I have currently implemented a call to the ShowStringW function in graphic.dll in the code, and it was successfully called. But I don't know why it doesn't show up, and I've been studying it for a long time, but still haven't found any results.
If we can customize our own rendering through all the dynamic link libraries on the client side, everything on the client side will become very simple. This is my idea, but I think it's too difficult for me alone. I don't know if anyone can solve and share it. Or it is simply impossible to achieve.
At least for now, you can render some simple content, such as IMGUI....

XGUI HOOK DEMO.7z

Posted

Just hook d3d9, use imgui, disable/prevent og game functions to being rendered.

Posted
44 minutes ago, kennylovecode said:



But I want to try native c3engine rendering

Then this will help you: post 

Posted

Actually, I would like to ask you if it is suitable for all versions, such as when I use this code

HMODULE hGraphic = GetModuleHandleA("graphic.dll"); oShowStringEx = (ShowStringEx_t)GetProcAddress( hGraphic, "?ShowStringEx@CMyBitmap@@SA?AUC3_SIZE@@HHKPBD0H_NW4RENDER_TEXT_STYLE@@KUC3_POS@@@Z");    

Posted
9 minutes ago, kennylovecode said:

Actually, I would like to ask you if it is suitable for all versions, such as when I use this code

HMODULE hGraphic = GetModuleHandleA("graphic.dll"); oShowStringEx = (ShowStringEx_t)GetProcAddress( hGraphic, "?ShowStringEx@CMyBitmap@@SA?AUC3_SIZE@@HHKPBD0H_NW4RENDER_TEXT_STYLE@@KUC3_POS@@@Z");    

Newer versions of the game changed to ShowStringW.

?ShowStringW@CMyBitmap@@SA?AUC3_SIZE@@HHKPBGPBDH_NW4RENDER_TEXT_STYLE@@KUC3_POS@@@Z

You can make changes in real time to the content with this too.

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...