Register for your free account! | Forgot your password?

You last visited: Today at 01:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Old Item Mall / Old Mainpop

Discussion on Old Item Mall / Old Mainpop within the SRO PServer Questions & Answers forum part of the SRO Private Server category.

Reply
 
Old 10/10/2020, 18:30   #16
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,464
Quote:
Originally Posted by bilalctn View Post
which code ?
The assembly code you see in the debugger.

Quote:
Originally Posted by bilalctn View Post
Bro Help pls
You've successfully completed the task of repeatedly recognizing and replacing a PUSH EBX and a CALL EAX instructions. What's left is finding the exactly same pattern once more right below the part you already patched. You literally only need to scroll once, if at all. Recognize the pattern and patch it to NOP aswell. Then the background will appear.
florian0 is offline  
Thanks
1 User
Old 10/10/2020, 19:09   #17
 
elite*gold: 0
Join Date: Mar 2020
Posts: 17
Received Thanks: 2
Quote:
Originally Posted by florian0 View Post
The assembly code you see in the debugger.



You've successfully completed the task of repeatedly recognizing and replacing a PUSH EBX and a CALL EAX instructions. What's left is finding the exactly same pattern once more right below the part you already patched. You literally only need to scroll once, if at all. Recognize the pattern and patch it to NOP aswell. Then the background will appear.
my english is a little bad, i guess that's why i don't understand



Quote:
Originally Posted by florian0 View Post
The assembly code you see in the debugger.



You've successfully completed the task of repeatedly recognizing and replacing a PUSH EBX and a CALL EAX instructions. What's left is finding the exactly same pattern once more right below the part you already patched. You literally only need to scroll once, if at all. Recognize the pattern and patch it to NOP aswell. Then the background will appear.
you king ty i did, working now



Quote:
Originally Posted by sarkoplata View Post
You can use the new quest window.

PHP Code:
void CGInterface::SwitchQuestWindow()
{
    return 
reinterpret_cast<void(__thiscall*)(CGInterface*)>(0x007990E0)(this);

how do i use it?

Quote:
Originally Posted by florian0 View Post
The assembly code you see in the debugger.



You've successfully completed the task of repeatedly recognizing and replacing a PUSH EBX and a CALL EAX instructions. What's left is finding the exactly same pattern once more right below the part you already patched. You literally only need to scroll once, if at all. Recognize the pattern and patch it to NOP aswell. Then the background will appear.


sorry for spams posts

I need fix *Quest*
bilalctn is offline  
Thanks
1 User
Old 10/15/2020, 20:10   #18
 
elite*gold: 0
Join Date: Jul 2020
Posts: 51
Received Thanks: 6
anyone have this files with out any problems ?
xTomasky is offline  
Old 03/18/2021, 22:56   #19
 
elite*gold: 0
Join Date: Oct 2017
Posts: 26
Received Thanks: 0
Quote:
Originally Posted by florian0 View Post
This is one call to ShowGWnd. It's a . The function address is stored in EAX and read from the virtual function table at offset 0x5c.


A function call in general consists of PUSH and CALL (and maybe ADD ESP, x). Each PUSH is likely to be that argument of a function call. ShowGWnd has only one argument. You can see that because there is only one PUSH. PUSH EBX will pass a 0 to the function (because EBX was set no 0 waaaaayyyyyyy earilier in that function). So ShowGWnd(false). But we don't know what to modify with ShowGWnd(false). The object to modify is stored in ECX. It's also called the (Ghidra named it 'this' automatically). 'This' comes from the result of [ESI + 0x7dc], which is m_btnInventory.

I know it's m_btnInventory because I have seen 0x7dc before. Right here:



This part retrives a control with the ID 0xC (12). And 12 is our Inventory Button. I got the ID from ifmainpopup.txt

So in order to make the stuff show instead of hide, you could just skip calling ShowGWnd. That means you replace the PUSH and the CALL with a NOP.

Since you now learned something, you can go and test it out. My proposed change does show the buttons, but not the background. But have no fear. The call for hiding the background is a little below the region I proposed. You only need to recognize the virtual call and the parameter. Replace it with NOP, done.
Pro Can You Counect Me Descord SiZR#6730
DillerUnlimited is offline  
Old 05/22/2021, 16:55   #20
 
elite*gold: 0
Join Date: Nov 2015
Posts: 17
Received Thanks: 1
tks

Quote:
Originally Posted by sarkoplata View Post
You can use the new quest window.

PHP Code:
void CGInterface::SwitchQuestWindow()
{
    return 
reinterpret_cast<void(__thiscall*)(CGInterface*)>(0x007990E0)(this);

Quote:
Originally Posted by florian0 View Post
Okay. Lets go.

Load up your favourite disassembler. I'm using x32dbg.



I gave away the addresses to look at. Explaining how I got there is part of another story.

Press Ctrl+G, enter the address you want to go to:



Now we got the location where the ShowGWnd(false) is called. From my post before we know PUSH and CALL are the important parts of a function call.

Select the PUSH instruction. Press Space to open the assembler. It will show the current instruction.



Enter "NOP" to replace it with a No-Operation. Make sure to tick the "Fill with NOP" Box.

Replace the PUSH and the CALL with NOPs. When you are done, it should look like this:



Repeat this step until you replaced all ShowGWnd(false) calls:



After that, press Ctrl+P to open the Patches-Window. Press "Patch File" to export a patched binary. You can not use the file you opened (e.g. sro_client.exe), so choose a different name.




sro_client_ruined.exe sounds like a good choice to me:



Now you are done. You have successfully patched the client. The icons are now visible. What's left is the background image. Use your acquired knowledge to analyze the code right below of what to patched to find another CALL thats using [edx+5C]. Thats the background. Replace it with NOP and the visuals are fine.
thanks you
sangtieungao is offline  
Old 05/31/2021, 11:19   #21
 
Judgelemental's Avatar
 
elite*gold: 0
Join Date: Aug 2013
Posts: 1,490
Received Thanks: 797
Thank you.

I'm not a developer and I have no idea what I've done but I have managed to make it work :

Between 006a28ff and 006a295f -> fill them in with NOP

Then between 006a2970 to 006a2989 (I think the last address had some letters at the end of it, too lazy to check) -> fill them in with NOP
Not sure if I should have NOP'd more addresses or less but the result is :

Judgelemental is offline  
Reply


Similar Threads Similar Threads
vSRO Old MainPop
08/03/2021 - SRO Coding Corner - 26 Replies
https://www.youtube.com/watch?v=NE7N0NDg3ac Quest UI part of the current question. @florian0
Metin2 United! <3 Join Today! Mall/Non-Mall Server.
10/30/2013 - Metin2 PServer Advertising - 8 Replies
Join Metin2United today! There are 3 Servers, Mall Server - Weak Mall Server - Non-Mall server! And plus we have our own launcher! Visit our site http://metin2.gamezunited.com. We currenlty have 7 Different private servers! Be sure to check it out at http://gamezunited.com :) We supports all kinds of languages, so you have the option to change English to Spanish in client and lots of more. See you ingame :o
[Mall] Item Mall Problem
02/01/2013 - SRO Private Server - 0 Replies
when buying items in ITEM MALL = dc but have item in inv after log in again we want fix it
How do I add item item Mall
10/06/2011 - SRO Private Server - 3 Replies
Vsro How do I add the Item mall new item?



All times are GMT +2. The time now is 01:42.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.