Jump to content
  • 0

[help ]L2OFF Windows server 2008


Question

Posted

Hello,

did someone run L2server+extender under Windwos server 2008 R2 ? I have a little problem when i tun server, there was error message "Cannot find import; DLL maybe missing;corrupt, or wrong version File: WININET.DLL  Error: 998 ". (So I run to check Windows\system32 for WININET.dll, i found WININET.DLL version 8.00.7600.16625 (win7_gdr.100629-1617). ) Server stop running after this error..

 

 

L2Server_1221_0208_dll.exe / 8.91 MB (9340416 bytes)

l2serverx64-dll.dll / 1.75 MB (1835008 bytes) / licenced..

 

I also made DLL with fix mentioned on PP, but there is another error :

The Application was unable to start correctly (0xc000007b)..

 

Can someone help me solve this problem ?

Thanks..

 

Recommended Posts

  • 0
Posted

If you have the newest version of dVampire properly licensed, this shouldn't happen.

Try contacting fr3d since he bought out dvamp.

 

Secondly the fix created is not for R2(released in 2010).

It could be there's more poopoo's with the OS architecture in R2.

In which case you'd need research to figure out where it is.

 

Most likely however, it sounds like you fukked up the "fix dll", based on your error.

  • 0
Posted

So solutions is:

  1 : Contact Fr3d and buy new extender.

  2 : Reinstal Windows Server 2008 R2 to Windows server 2003 RC2

  3 : Try to find fix for WS 2008 R2 ...

 

Is it correct?)

  • 0
Posted

So solutions is:

  1 : Contact Fr3d and buy new extender.

  2 : Reinstal Windows Server 2008 R2 to Windows server 2003 RC2

  3 : Try to find fix for WS 2008 R2 ...

 

Is it correct?)

 

Solution is - boot up without the WS 2008 fix, and note if it crashes during loading one of the scripts as it should on 2008.

Boot up with fix, and note if the process doesn't even start but instantly exits, citing bad injection of code.

 

Noting you fukked up - and that there's no difference from 2008 to 2008 R2.

If difference exists, start researching(Yea, i know won't happen).

 

Alternatively, downgrade would instantly fix it.

 

 

  • 0
Posted

Solution is - boot up without the WS 2008 fix, and note if it crashes during loading one of the scripts as it should on 2008.

Boot up with fix, and note if the process doesn't even start but instantly exits, citing bad injection of code.

 

Noting you fukked up - and that there's no difference from 2008 to 2008 R2.

If difference exists, start researching(Yea, i know won't happen).

 

Alternatively, downgrade would instantly fix it.

 

 

 

 

Yes process crashes instatly after start every time (without/with WS2008 fix ).

Without fix ,there was error with WINNET, as i mentioned above.

With fix , there was error 0xc000007b .

  • 0
Posted

The next problem is with or without Fix DLL:

  Problem Event Name:    APPCRASH
 Application Name:    L2Server_1221_0208_dll.exe
 Application Version:    0.0.0.0
 Application Timestamp:    43e9e657
 Fault Module Name:    StackHash_fca3
 Fault Module Version:    0.0.0.0
 Fault Module Timestamp:    00000000
 Exception Code:    c0000005
 Exception Offset:    000000001d660000
 OS Version:    6.1.7600.2.0.0.272.7
 Locale ID:    1033
 Additional Information 1:    fca3
 Additional Information 2:    fca35134e2da30130be19e279f6c1200
 Additional Information 3:    4843
 Additional Information 4:    484311c7b93a181590321c631b7ef467

 

I used :

case DLL_PROCESS_ATTACH:
	{
		WriteInstruction(0x643AA6, 0x643AB7, 0, 0xE9);	
	}

  • 0
Posted

 

How exactly will that relate to his problem at all?

 

 

 

Post your full code.

Random base address or fixed?

 

Try selecting a fixed unused adressbase in the project management.

This used to cause me problems with quick fix dlls.

  • 0
Posted

How exactly will that relate to his problem at all?

 

 

 

Post your full code.

Random base address or fixed?

 

Try selecting a fixed unused adressbase in the project management.

This used to cause me problems with quick fix dlls.

 

Oki my code is here :

I used extredner code from topic about extenders , posted on this forum and 2 methods from guys on PP.

#include "DllMain.h"

//#define STATUS_ACCESS_VIOLATION          ((NTSTATUS)0xC0000005L) 

void NOPMemory(INT32 Address, INT32 len)
{
BYTE Byte = 0x90;
DWORD OLDPROTECT;
SIZE_T BW;
HANDLE Server = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE, false, GetCurrentProcessId());
if ( Server )
{
	for ( int i = 0 ; i < len ; i++ )
	{
		INT32 ADDR = Address+i;
		VirtualProtectEx(Server, (LPVOID)ADDR, 1, PAGE_WRITECOPY, &OLDPROTECT);
		WriteProcessMemory(Server,(LPVOID)ADDR,&Byte,1,&BW);
		VirtualProtectEx(Server, (LPVOID)ADDR, 1, OLDPROTECT, &OLDPROTECT);
	}
}
CloseHandle(Server);
}

void WriteInstruction(INT32 Address, INT32 NewAddress, INT32 NopZone, INT8 Instruction)
{
DWORD OLDPROTECT;
SIZE_T BytesWritten;
CHAR *MyAddress = (CHAR *)Address;
INT32 JAddress = NewAddress - (Address+5);

HANDLE Server = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE, false, GetCurrentProcessId());

if ( Server )
{
	// Unlocking the current address space in order to create the new jump.
	VirtualProtectEx(Server, (VOID *)Address, 5+NopZone, PAGE_WRITECOPY, &OLDPROTECT);

	WriteProcessMemory(Server,MyAddress,(CHAR *)&Instruction,1,&BytesWritten);
	WriteProcessMemory(Server,MyAddress+1,(CHAR *)&JAddress,4,&BytesWritten);
												 // COPYING THE ADDRESS TO THE ADDRESS SPACE.
	NOPMemory((INT32)MyAddress+5, NopZone);	         // NOPING THE REST OF THE ZONE YOU WANTED PATCHED.
	VirtualProtectEx(Server, (VOID *)Address, 5+NopZone, OLDPROTECT, &OLDPROTECT);
}

CloseHandle(Server);
}

__declspec(dllexport) BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
	{
		WriteInstruction(0x6432F6, 0x643307, 0, 0xE9);
		//WriteInstruction(0x643AA6, 0x643AB7, 0, 0xE9);	
	}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
	break;
}
return TRUE;
}

 

 

This fix DLL , i import to L2server.....exe, after l2serverx64-dll.dll, also tried import it before l2serverx64-dll.dll.

 

try this vistaFix dll.mb it could worked for u...its for Dvamp extender....

 

i remembered that there is a hooking address in COEP sounce codes...u can find it...

 

http://www.datafilehost.com/download-a4b3b629.html

 

Also tried, doesnt work for me.

  • 0
Posted

Oki my code is here :

I used extredner code from topic about extenders , posted on this forum and 2 methods from guys on PP.

#include "DllMain.h"

//#define STATUS_ACCESS_VIOLATION          ((NTSTATUS)0xC0000005L) 

void NOPMemory(INT32 Address, INT32 len)
{
BYTE Byte = 0x90;
DWORD OLDPROTECT;
SIZE_T BW;
HANDLE Server = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE, false, GetCurrentProcessId());
if ( Server )
{
	for ( int i = 0 ; i < len ; i++ )
	{
		INT32 ADDR = Address+i;
		VirtualProtectEx(Server, (LPVOID)ADDR, 1, PAGE_WRITECOPY, &OLDPROTECT);
		WriteProcessMemory(Server,(LPVOID)ADDR,&Byte,1,&BW);
		VirtualProtectEx(Server, (LPVOID)ADDR, 1, OLDPROTECT, &OLDPROTECT);
	}
}
CloseHandle(Server);
}

void WriteInstruction(INT32 Address, INT32 NewAddress, INT32 NopZone, INT8 Instruction)
{
DWORD OLDPROTECT;
SIZE_T BytesWritten;
CHAR *MyAddress = (CHAR *)Address;
INT32 JAddress = NewAddress - (Address+5);

HANDLE Server = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE, false, GetCurrentProcessId());

if ( Server )
{
	// Unlocking the current address space in order to create the new jump.
	VirtualProtectEx(Server, (VOID *)Address, 5+NopZone, PAGE_WRITECOPY, &OLDPROTECT);

	WriteProcessMemory(Server,MyAddress,(CHAR *)&Instruction,1,&BytesWritten);
	WriteProcessMemory(Server,MyAddress+1,(CHAR *)&JAddress,4,&BytesWritten);
												 // COPYING THE ADDRESS TO THE ADDRESS SPACE.
	NOPMemory((INT32)MyAddress+5, NopZone);	         // NOPING THE REST OF THE ZONE YOU WANTED PATCHED.
	VirtualProtectEx(Server, (VOID *)Address, 5+NopZone, OLDPROTECT, &OLDPROTECT);
}

CloseHandle(Server);
}

__declspec(dllexport) BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
	{
		WriteInstruction(0x6432F6, 0x643307, 0, 0xE9);
		//WriteInstruction(0x643AA6, 0x643AB7, 0, 0xE9);	
	}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
	break;
}
return TRUE;
}

 

 

This fix DLL , i import to L2server.....exe, after l2serverx64-dll.dll, also tried import it before l2serverx64-dll.dll.

 

Also tried, doesnt work for me.

"

Random base address or fixed?

 

Try selecting a fixed unused adressbase in the project management.

This used to cause me problems with quick fix dlls.

 

repeat.

  • 0
Posted

It throws me error in compilation process : Error    2    fatal error LNK1295: '/FIXED' not compatible with '/DYNAMICBASE' specification; link without '/FIXED'

 

So i remove /DYNAMICBASE

 

  • 0
Posted

It throws me error in compilation process : Error    2    fatal error LNK1295: '/FIXED' not compatible with '/DYNAMICBASE' specification; link without '/FIXED'

 

So i remove /DYNAMICBASE

 

 

and the server instantly stops with error :

Problem Event Name: APPCRASH

 Application Name: L2Server_1221_0208_dll.exe

 Application Version: 0.0.0.0

 Application Timestamp: 43e9e657

 Fault Module Name: StackHash_5446

 Fault Module Version: 0.0.0.0

 Fault Module Timestamp: 00000000

 Exception Code: c0000005

 Exception Offset: 000000001d740000

 OS Version: 6.1.7600.2.0.0.272.7

 Locale ID: 1033

 Additional Information 1: 5446

 Additional Information 2: 544654776bb96463ce31d05c263bc066

 Additional Information 3: 6c88

 Additional Information 4: 6c88dfe237dda869f533bae89fea51b4

 

 

Someone can help me please?

 

 

  • 0
Posted

Open PP had a fix inserted into it's SVN long ago, by... i forgot was it kation or kuroi or... fyyre?

Someone.

 

Seems to be a problem after fishing data with some different instructions opcodes machine wise vs new windows 2008 architecture.

When it's calling some waitthread que function, that screws it all up.

 

 

//OpenPP / Normal NA/EU c4 Exe.

Code:

 

// Vista 64 / Windows 2008 Server (Incompatibility) [Fixes the Crash During the Loadage of L2Server]

WriteInstruction(0x6432F6, 0x643307, 0, 0xE9); // Forced Jump

 

 

Since it's giveaway your using dVamp - and it's more or less identical, it's just switching hook/jump adress to it's corresponding proper memory adress.

 

Code:

 

// Vista 64 / Windows 2008 Server (Incompatibility) [Fixes the Crash During the Loadage of L2Server] // dVampire

WriteInstruction(0x643AA6, 0x643AB7, 0, 0xE9); // Forced Jump

 

 

 

Could try that, but if it crashes straight on startup obviously something is more is wrong, that would require research.

 

all from http://www.mmocom.ru....

like mation said need nops 2 bytes at 0x643AA6 to 0x643AB7

hope it could help with u...GL

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • I'm using Myext64 HF and recently tried to replicate the "br_xmas09_event" Raising Rudolph Event. Detailed event information can be found at https://legacy-lineage2.com/news/_rudolf_the_red.html After configuring .eventdata.xml and starting the server, t  server log shows: 12/02/2025 15:39:01.809, [NO_ERROR] SpawnEx2 [br_xmas2009_invisible][schuttgart20_npc2213_xs03m1] [1][0][0][0][0][346796390] 12/02/2025 15:39:02.057, DummyPacket received from L2Server 12/02/2025 15:39:02.058, server socket close 312ac(f0820224) error(997) 12/02/2025 15:39:02.058, [CallStack][tid:0][tick:2][0] Begin 12/02/2025 15:39:02.058, [CallStack][tid:0][tick:2][1][0] void __cdecl IOThreadCallback::IOThread_common(void) 12/02/2025 15:39:02.059, [CallStack][tid:0][tick:2][2][1] void IOThread_common 1 12/02/2025 15:39:02.059, [CallStack][tid:0][tick:2][3][2] void __cdecl CIOSocketEx<class CIOBufferEx<16384> >::Close(void) 12/02/2025 15:39:02.059, [CallStack][tid:0][tick:2][4][3] void __cdecl CServerSocket::OnClose(void) 12/02/2025 15:39:02.059, [CallStack][tid:0][tick:2][5] End l2server log: 12/02/2025 15:39:02.112, npc server closed(127.0.0.1) error: 64 read buffer size: (server:0 npc:0) 12/02/2025 15:39:02.112, [NO_ERROR] L2Server is under protection mode!!! 12/02/2025 15:39:02.112, [NO_ERROR] L2Server is under protection mode!!! 12/02/2025 15:39:02.112, [NO_ERROR] L2Server is under protection mode!!! 12/02/2025 15:39:02.131, dwTime[0] < 80 !!!!!!! 12/02/2025 15:39:02.131, [CallStack][tid:7][tick:1][0] Begin 12/02/2025 15:39:02.132, [CallStack][tid:7][tick:1][1][0] void __cdecl IOThreadCallback::IOThread_common(void) 12/02/2025 15:39:02.132, [CallStack][tid:7][tick:1][2][1] void IOThread_common 1 12/02/2025 15:39:02.132, [CallStack][tid:7][tick:1][4][3] void __cdecl NpcSocket::OnClose(void) 12/02/2025 15:39:02.132, [CallStack][tid:7][tick:1][3][2] void __cdecl CIOSocketEx<class CIOBufferEx<16384> >::Close(void) 12/02/2025 15:39:02.132, [CallStack][tid:7][tick:1][5] End 12/02/2025 15:39:31.767, server closed(127.0.0.1) Error: 64 Read buffer size: (server:0 npc:0) 12/02/2025 15:39:31.768, [NO_ERROR] Logout All Characters : 1   The NPC server sent a packet to the L2 server while generating the br_xmas2009_invisible game NPC server, and the NPC server subsequently crashed.     After some digging, I found a clue in a very old MXC post, but the fix was for the GF version. The whole problem is in l2server side support for NPC function CreateOnePrivateNearUser. It sends CreatePacket but Koreans made some changes in it (added instance ID) so it got broken. As Santa event is the only AI that uses this function, they probably don't know about it    So is there a way to fix this problem, specifically for Myext64 HF? I'd be happy to buy him coffee. set_compiler_opt base_event_type(@NTYPE_NPC_EVENT) class ai_br_vital_manager : default_npc { parameter: int br_vitality2010_EVENT_ID = 20108888; handler: EventHandler CREATED() { } EventHandler TALKED(talker) { ShowPage(talker, "br_vi_stevu001.htm"); super; } EventHandler GIVE_EVENT_DATA(talker, i0, i1, i2, i3, i4) { i3 = i2 / 3600; i2 = i2 - i3 * 3600; i4 = i2 / 60; i2 = i2 - i4 * 60; if (i1 == 20108888) { if (i0 == 1) { CastBuffForQuestReward(talker, @s_br_vitality_day_1); CastBuffForQuestReward(talker, @s_br_vitality_day_2); ShowPage(talker, "br_vi_stevu002.htm"); } else { ShowPage(talker, "br_vi_stevu003.htm"); } } } EventHandler MENU_SELECTED(talker, ask, reply, c0) { if (ask == 50021) { select (reply) { case 1: CanGiveEventData(talker, 20108888); break; case 2: if (talker.level <= 75) { ShowPage(talker, "br_vi_stevu005.htm"); } else if (IsInCategory(@fighter_group, talker.occupation)) { CastBuffForQuestReward(talker, @s_wind_walk_for_newbie); CastBuffForQuestReward(talker, @s_shield_for_newbie); CastBuffForQuestReward(talker, @s_magic_barrier_for_adventurer); CastBuffForQuestReward(talker, @s_bless_the_body_for_newbie); CastBuffForQuestReward(talker, @s_vampiric_rage_for_newbie); CastBuffForQuestReward(talker, @s_regeneration_for_newbie); CastBuffForQuestReward(talker, @s_haste_for_adventurer); ShowPage(talker, "br_vi_stevu006.htm"); } else if (IsInCategory(@mage_group, talker.occupation)) { CastBuffForQuestReward(talker, @s_wind_walk_for_newbie); CastBuffForQuestReward(talker, @s_shield_for_newbie); CastBuffForQuestReward(talker, @s_magic_barrier_for_adventurer); CastBuffForQuestReward(talker, @s_bless_the_soul_for_newbie); CastBuffForQuestReward(talker, @s_acumen_for_newbie); CastBuffForQuestReward(talker, @s_concentration_for_newbie); CastBuffForQuestReward(talker, @s_empower_for_newbie); ShowPage(talker, "br_vi_stevu007.htm"); } break; case 3: c0 = GetSummon(talker); if (talker.level <= 75) { ShowPage(talker, "br_vi_stevu011.htm"); } else if (IsNullCreature(c0) == 0 && IsInCategory(@summon_npc_group, c0.class_id) && IsInCategory(@pet_group, c0.class_id) == 0) { CastBuffForQuestReward(c0, @s_wind_walk_for_newbie); CastBuffForQuestReward(c0, @s_shield_for_newbie); CastBuffForQuestReward(c0, @s_magic_barrier_for_adventurer); CastBuffForQuestReward(c0, @s_bless_the_body_for_newbie); CastBuffForQuestReward(c0, @s_vampiric_rage_for_newbie); CastBuffForQuestReward(c0, @s_regeneration_for_newbie); CastBuffForQuestReward(c0, @s_bless_the_soul_for_newbie); CastBuffForQuestReward(c0, @s_acumen_for_newbie); CastBuffForQuestReward(c0, @s_concentration_for_newbie); CastBuffForQuestReward(c0, @s_empower_for_newbie); CastBuffForQuestReward(c0, @s_haste_for_adventurer); ShowPage(talker, "br_vi_stevu009.htm"); } else { ShowPage(talker, "br_vi_stevu010.htm"); } break; } } } } Another one is about the " br_vitality2010_event event".   GIVE_EVENT_DATA is likely the only one in the activity AI script that uses this handle.      
    • Offtopic, personal attacks, probably too old to use that much memes and what's YOUR actual contribution to L2J, in order I laugh aswell ?   The main poster quotes my pack so I answer accordingly, while you advertise L2JFrozen in both of your posts - discontinued since 2014 (? 1132 rev), with none taking back the open source lead while anyone could.   If you're somewhat affiliated to hopzone, you probably packed way more money than me. Packs don't make any type of money (barely 100e/month) and if you would follow me, you would know there are ways to handle it or even getting paid.   Hope I was short enough, 🧂🤡.
    • Hi guys, this is a CMS im sharing for lineage 2 servers, im tired of the crap i see on new release servers. Dont let me start on the IA developed ones lmao.   📋 Description Free and open source template to create landing pages for Lineage 2 private servers. Designed with a dark fantasy theme and modern animations. ✨ Current Features This FREE version includes: Complete Landing Page - Professional design ready to use Multi-language Support - Spanish, English, Portuguese Dark Fantasy Theme - With animated UI elements Server Information - Rates, features, and rules Olympiad Ranking - Rankings display Download Section - For game client Skins and Animations Gallery Streaming Widget - Twitch/Kick integration Fully Customizable - Via configuration files ❌ Not Included in Free Version ❌ User Registration System ❌ Online Players Counter ❌ Donation Panel 💎 Premium Integrations IntegrationPrice Registration System $50 USD Online Players Counter $50 USD Donation Panel $50 USD   📧 Contact: https://gh0tstudio.com 🛠️ Tech Stack Technology    Version    Description React              19.2.0       UI Library TypeScript       5.8.2        Static typing Vite                 6.2.0         Build tool TailwindCSS   CDNCSS    Framework Lucide React   0.554.0         Icons i18next           23.16.0       Internationalization react-i18next   15.1.0        React bindings for i18n All documentation provided for AI AGENTS to make changes on the ui texts and so on. u can have a look on the cms fully working with donation panel, online count and register via: https://crmlineage2.vercel.app/ https://github.com/6h0T/CRM-LINEAGE2-FREE If u are in the lookings to develop a unique website for ur projects, u can dm me or contact me throw my socials on my profile. all code has encrypted references so any type of rebranding, copying or selling without authorization will result in take downs
    • Hello dude, i can help u out, i reached to u via DM, my studio is https://gh0tstudio.com i have worked with almost 40 brands on developing Private Lineage and Mu online servers, dashboard for vote pages and more. I sent u some examples too
    • L2 TARTARUS - HTML DESIGN       L2 KOMBAT - ANIMATED BORDER   L2 SERENITY - ANIMATED LOGO   L2 ARCANE - COMMUNITY BOARD     L2 AMERIKA - ADVERTISING BANNER   L2 ZERON - ADVERTISING BANNER  
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock