[RELEASE] Ollydbg offsets and patches

11/19/2014 22:40 Kape7#1
Hello. Just wanted to drop some offsets and patches I´ve been creating and collecting during this years. Not many but I think some are kinda useful.

There u go:

Code:
//by Synx ([Only registered and activated users can see links. Click Here To Register...])
//Guild Union Chat Limit
//SR_GameServer
005E81D2       837C24 30 0C      CMP DWORD PTR SS:[ESP+30],0C --193
005C4B42   837C24 30 0C     CMP DWORD PTR SS:[ESP+30],0C --188

//SRO_Client
005AA0F8       3C 0C             CMP AL,0C --193
005AC538    3C 0C                CMP AL,0C --188

//Cap level (SR_Gameserver)
004E52C7   80F9 7D                 CMP CL,7D --188


//120 Mastery limit (SRO_Client)
006B5BF8     3C 8C               CMP AL,78 --193
0069C7C8   3C 78                CMP AL,78 --188


//120 level up limit (SRO_Client)
008C1162     80FB 8C             CMP BL,78 --193
008A99A2   80FB 6E              CMP BL,6E --188

//Max Mastery Limit (SRO_Client)
006C3A73   BE 68010000      MOV ESI,168 --193
006A51BC   BF 77010000          MOV EDI,177 --188

//240 EU Mastery Limit (SRO_Client)
--193
006C3A48     3D FA000000         CMP EAX,0F0
006C3A53     BE FA000000         MOV ESI,0F0
006BE747     3D FA000000         CMP EAX,0F0
006BE752     BF FA000000         MOV EDI,0F0
--188
006A5197   3D F0000000          CMP EAX,0F0
006A51A2   BF F0000000          MOV EDI,0F0
006AA498   3D F0000000          CMP EAX,0F0
006AA4A3   BE F0000000          MOV ESI,0F0

//240 EU Mastery Limit (SR_Gameserver) - Codecave
--193
005C0569   - E9 15FDE3FF         JMP SR_GameS.00400283
00400283     E8 18251C00         CALL SR_GameS.005C27A0
00400288     8BC8                MOV ECX,EAX
0040028A     0FB645 0C           MOVZX EAX,BYTE PTR SS:[EBP+C]
0040028E     03C8                ADD ECX,EAX
00400290     894C24 0C           MOV DWORD PTR SS:[ESP+C],ECX
00400294     DB4424 0C           FILD DWORD PTR SS:[ESP+C]
00400298     DC1D 78A7BC00       FCOMP QWORD PTR DS:[BCA778]
0040029E     DFE0                FSTSW AX
004002A0     81F9 FA000000       CMP ECX,0FA ;mastery limit offset
004002A6   - 0F8F 20031C00       JG SR_GameS.005C05CC
004002AC   - E9 DA021C00         JMP SR_GameS.005C058B
--188
http://i.imgur.com/X9oIib5.png (less code)

//Growth pet level cap (SR_Gameserver)
004E27FB     807E 58 78          CMP BYTE PTR DS:[ESI+58],78 --193
004D641B   807E 58 6E       CMP BYTE PTR DS:[ESI+58],6E --188

//Party matching cap (SRO_Client)
--188
0073940E 6A 6E PUSH 6E (automatch)
00739453 6A 6E PUSH 6E (automatch)
0073AFAE 6A 6E PUSH 6E (party match search min level write-able)
0073B013 6A 6E PUSH 6E (party match search max level write-able)
0073B030 6A 6E PUSH 6E (party match search default max level)
0073FA4C 6A 6E PUSH 6E (form party min level write-able)
0073FAAF 6A 6E PUSH 6E (form party max level write-able) 
0073FACC 6A 6E PUSH 6E (form party default max level)

//Levelup bugfix (SR_Gameserver)
004F19F2   7C 24            JL SHORT SR_GameS.004F1A18 --193
004E5471   817C24 20 E00100>|CMP DWORD PTR SS:[ESP+20],1E0 --188
--Note: 004F19F5 (10e = 120/4)

//Max characters per account (SRO_Client)
0085DE67   80BE 2C010000 08     CMP BYTE PTR DS:[ESI+12C],4 --188

//Max characters per account (SR_ShardManager)
--193
0040F5AC       83F8 1E           CMP EAX,1E
0042AAA3       83F8 1E           CMP EAX,1E
--188
0040F47C   83F8 04          CMP EAX,4
00429B83   83F8 04          CMP EAX,4

//Quest level cap (fix crash, SRO_Client)
00955134   8078 20 7D       CMP BYTE PTR DS:[EAX+20],6E --188

//Job level cap v188 files (SR_GameServer, thanks to Drew Benton (pushedx))
0060DE69 -> Job Cap Check (default 7)

//Job leaving penalty (default 7 days in seconds, SR_GameServer)
004E816C   68 803A0900      PUSH 93A80

//Guild leaving penalty (default 3 days in seconds, SR_GameServer)
005C3F94   68 80F40300      PUSH 3F480
009DF194   3D 80F40300      CMP EAX,3F480
005C8B3D   68 80F40300      PUSH 3F480
I cant remeber if the last 2 patches worked (the penalty times), so let me know if they do or not.


More offsets from the srSquirrelMod (thanks to Z3r0n1337):

Code:
#ifndef H_OFFSETS
#define H_OFFSETS
//-----------------------------------------------------
#define GS_LEVEL_CAP_1 (0x004D641B + 3)
#define GS_LEVEL_CAP_2 (0x004E52C7 + 2)
#define GS_LEVEL_CAP_3 (0x004E5471 + 4)
//-----------------------------------------------------
#define GS_CH_MASTERY_1 (0x0059C5E6 + 1)
#define GS_EU_MASTERY_1 (0x0059C56E)
//-----------------------------------------------------
#define GS_PET_MAX_LEVEL (0x004D641B + 3)

//-----------------------------------------------------
#define GS_RATE_1 (0x0042714C + 2)
#define GS_RATE_2 (0x004271F5 + 2)
#define GS_RATE_3 (0x004272A0 + 2)
#define GS_RATE_4 (0x00427349 + 2)
//-----------------------------------------------------
#define GS_GREEN_BOOK_1 (0x004142E2)
#define GS_GREEN_BOOK_2 (0x0041474D)
//-----------------------------------------------------
#define GS_PRINT_MSG (0x00936640)
//-----------------------------------------------------
#define GS_BSOBJ_MSGBOX (0x00963930)
//-----------------------------------------------------
#define GS_LOG_CHAR_DB (0x0043A350)
#define GS_LOG_FORT_DB (0x0043A470)
#define GS_LOG_ITEM_DB (0x0043A590)
#define GS_LOG_EVENT_DB (0x0043A6D0)
#define GS_LOG_SCHEDULE_DB (0x0043A7F0)
//-----------------------------------------------------
#define GS_DUMP_CREATION_1 (0x00964060)
#define GS_DUMP_CREATION_2 (0x0095C4E0)
//-----------------------------------------------------
#define GS_SP_MULTIPLIER_JUMPBACK (0x004EA805)
#define GS_SP_MULTIPLIER_OFFSET (0x004EA7FB)
//-----------------------------------------------------
#define GS_JOB_EXP_RATE_OFFSET (0x004E2862)
#define GS_JOB_EXP_RATE_JUMPBACK (0x004E286B)
#define GS_JOB_EXP_RATE_INLINE_ADDR (0x009FBB40l)
//-----------------------------------------------------
#define GS_STATPOINT_OFFSET (0x004E4DAF)
#define GS_STATPOINT_JUMPBACK (0x004E4DB7)
//-----------------------------------------------------
#define GS_GUILD_JOB_WIN_COUNT (0x00669158 + 4)
#define GS_RANDOM_PARTY_WIN_COUNT (0x0066915F + 4)
#define GS_GUILD_JOB_LOSE_COUNT (0x00669173 + 4)
#define GS_RANDOM_PARTY_LOSE_COUNT (0x0066917A + 4)
//-----------------------------------------------------
#define GS_JOB_MAXLVL (0x0060DE69 + 3)
//-----------------------------------------------------
#define GS_JOB_THIEF_GOLD_MULTIPLIER (0x004C81E5)
#define GS_JOB_THIEF_GOLD_MULTIPLIER_JUMPBACK (0x004C81EA)
//-----------------------------------------------------
#define GS_JOB_TRADER_GOLD_MULTIPLIER (0x004C8DBC)
#define GS_JOB_TRADER_GOLD_MULTIPLIER_JUMPBACK (0x004C8DC1)
#define GS_JOB_TRADER_GOLD_MULTIPLIER_ORIGCALL (0x00486390)
//-----------------------------------------------------
#define GS_JOB_HUNTER_GOLD_MULTIPLIER (0x005BD44F)
#define GS_JOB_HUNTER_GOLD_MULTIPLIER_JUMPBACK (0x005BD45A)
#define GS_JOB_HUNTER_GOLD_MULTIPLIER_CALL (0x009FBB76)
//-----------------------------------------------------
#define GS_NORMALMSG_ADDR_STEP1 (0x004B17AE)
#define GS_NORMALMSG_JUMPBACK_STEP1 (0x004B17B4)
#define GS_NORMALMSG_ADDR_STEP2 (0x004B18B2)
#define GS_NORMALMSG_JUMPBACK_STEP2 (0x004B18B7)
//-----------------------------------------------------
#define GS_ADD_BLACKSMITH_1 (0x004C65DF)
//-----------------------------------------------------
#define GS_GLOBAL_MSG (0x0049C1CE)
#define GS_GLOBAL_MSG_ORIG_CALL (0x00426040)
#define GS_GLOBAL_MSG_JUMPBACK (0x0049C1D3)

#define GS_UNIQUE_KILL_MSG (0x00414BA9)
#define GS_UNIQUE_KILL_MSG_ORIG_CALL (0x00936640)
#define GS_UNIQUE_KILL_MSG_JUMPBACK (0x00414BAE)

#define GS_DISABLE_PK_PANALTY_FUNC_RETN4 (0x004E6980)
#define GS_DISABLE_PK_PANALTY_FUNC_RETN0C (0x004E1F60)
//-----------------------------------------------------

//jump to codecave
#define GS_GP_DONATE_OVERFLOW (0x005C4179)
#define GS_GP_DONATE_JUMPBACK (0x005C417F)
#define GS_GUILD_GP_OVERFLOW (0x005C4138)
#define GS_GUILD_GP_OVERFLOW_JUMPBACK (0x005C413D)

#endif
Cheers
11/22/2014 12:42 PortalDark#2
#Approved
11/22/2014 14:36 pushipu#3
Quote:
Originally Posted by Synx7 View Post

I cant remeber if the last 2 patches worked (the penalty times), so let me know if they do or not.

Cheers
Thx for "Guild Union Chat Limit" :)

About last 2, this can be done in database also, at least I edited there and works.
11/22/2014 15:28 ​Exo#4
Quote:
Originally Posted by pushipu View Post
Thx for "Guild Union Chat Limit" :)

About last 2, this can be done in database also, at least I edited there and works.
Well Ye but that requires an update ex:teleport/relog
11/22/2014 16:06 KingDollar#5
nice synx

keep it up
11/22/2014 22:05 asanoftw#6
great
11/23/2014 02:48 Royalblade*#7
Quote:
Originally Posted by xExorcist View Post
Well Ye but that requires an update ex:teleport/relog
Wrong requires a GS restart. I'm pretty sure.
11/23/2014 02:59 Syloxx#8
Quote:
Originally Posted by blablaRoyal View Post
Wrong requires a GS restart. I'm pretty sure.
You are wrong Akasch, Job / Guild penalty is stored as a TimedJob. Delete it and teleport the char will reset the penalty.
11/23/2014 05:34 Syloxx#9
Quote:
Originally Posted by blablaRoyal View Post
dude im talking about the union chat limit. Not job or guild penalty crap.

If you change that @ table only, the GS never reads it.
so you didnt read the conversation?


anyway @Synx

nice1 with logical thinking assets i got the charlimit per account also working on JSRO

JSRO Offsets:
Code:
ShardManager:
0040C68E   83F8 04          CMP EAX,4
0041BEE1   83F8 04          CMP EAX,4

SRO_Client:
0070B257   80BE 2C010000 04 CMP BYTE PTR DS:[ESI+12C],4
11/23/2014 10:46 DocToxic#10
N!ce one keep it up
11/23/2014 16:50 Kape7#11
I've found some offsets on an updated version of this file I had somewhere. They just have this new offsets:

Quote:
//Party matching cap (SRO_Client)
--188
0073940E 6A 6E PUSH 6E (automatch)
00739453 6A 6E PUSH 6E (automatch)
0073AFAE 6A 6E PUSH 6E (party match search min level write-able)
0073B013 6A 6E PUSH 6E (party match search max level write-able)
0073B030 6A 6E PUSH 6E (party match search default max level)
0073FA4C 6A 6E PUSH 6E (form party min level write-able)
0073FAAF 6A 6E PUSH 6E (form party max level write-able)
0073FACC 6A 6E PUSH 6E (form party default max level)
And also Snow told me that the guild and job penalty offsets are not working. I think I never found the real addresses. The thing is, the time is hardcoded on the gameserver, so in theory changing this time would make the GS write the new time on the db. I tried finding and changing it, but seems I never got it working. If someone finds the real addresses I can update the post with it.
11/23/2014 19:05 Crue*#12
thank you synx you're awesome
11/24/2014 15:24 blapanda#13
Thanks, the only thing I was missing was the Character Slot Holder offsets, and the quest cap - didn't even knew that there was anything like that.

Tho, anyone knows how to fix the party matching system without crashing the server, if you are aiming to a party match cap of 125 or higher?
-7c doesn't look so professional ... "Lv1 to Lv-124" cmon ... :D

As well, changing the character selection location would be nice. I read somewhere something about it, but cannot remember anything. Any clue? Would like to reset the location from consta harbour to the Devil's Garden.

And the Growth Pet Offset (same as mine) won't pass Lv120. Seems like that one is hardcoded.

Btw. for those who want to increase the characters hold per account, you need to modify a procedure...
Not going to spoiler which one.
Modding only the Shard + Client executable isn't all.
11/24/2014 16:54 Kape7#14
Quote:
Originally Posted by blapanda View Post
Thanks, the only thing I was missing was the Character Slot Holder offsets, and the quest cap - didn't even knew that there was anything like that.

Tho, anyone knows how to fix the party matching system without crashing the server, if you are aiming to a party match cap of 125 or higher?
-7c doesn't look so professional ... "Lv1 to Lv-124" cmon ... :D

As well, changing the character selection location would be nice. I read somewhere something about it, but cannot remember anything. Any clue? Would like to reset the location from consta harbour to the Devil's Garden.

And the Growth Pet Offset (same as mine) won't pass Lv120. Seems like that one is hardcoded.

Btw. for those who want to increase the characters hold per account, you need to modify a procedure...
Not going to spoiler which one.
Modding only the Shard + Client executable isn't all.
The procedure to modify is the one executed when creating a new char

Hmm, the last time I tested the growth pet level cap offset it worked fine

About the party matching, the only way to do it is codecave the exe. It is an easy codecave though, you just have to jump somewhere empty, push the number and jump back.
11/28/2014 13:33 KingDollar#15
Quote:
Originally Posted by blablaRoyal View Post
Alexiuns did some work and fucked up more. What's there to pay for?
Lol, am I the one who fucked up your work you little cheap stupid shit? I was the one who fixed it after you brought the other stupid ass wannabe database editor, after being officially fucked out your database! You were the one who said ' wait, wait, wait, wait, wait, wait, will pay, wait, wait, give me your email, wait, issues, wait, will pay you again, wait ' and then went out? I will not reply anymore to you because I will not downgrade my level for someone like you. Phoenix was right when he told me not to argue with the likes of you.