Jump to content

Koray

Active Member
  • Posts

    384
  • Joined

  • Last visited

  • Days Won

    58
  • Feedback

    0%

Everything posted by Koray

  1. Nah, you do not have to send right pong to client you can get client key and compare this in server, if this pong it's wrong you can easy and silent detect I'm said about "ThreadHideFromDebugger" not "HideMyFunctionFromThreard" lol I think you doesn't readed first part from my message "Maybe you need try first learn reading." Here is basic document: [Hidden Content] At the first, You don't need use "hiding debugger" for this shits. This tricks already easy patchable as manual. If you want good debug detect system you can easy detect with system informations APIs, like NtQueryInformationProcess or DbgUiRemoteBreakin. You can not catch from this APIs without modifcation with hook, and this easy detectable. And "hiding debugger", I don't understand what do you mean. If you mean hide debugger process, if you haven't any kernel mode support you can not bypass with user mode. So.. Hidden processes can be detectable. If you mean with plugins, my said tricks already patching with hook, I said already hooks easy be detectable. Easy? lol. I don't mean checks about memory blocks.. I mean check direct sections code integration "YMIR & Webzen YMIR Games (Winlicense)." wat? Maybe you need learn somethings about packers, I don't said my said protections %100 protect you but at least better protect from Themida or Enigma Who cares is fake signature? Unpacked gameguard modules and unpack methods already published xD Yes, anyone can not %100 protect from debug. But we can make better good defender mechanism for scripter kids, like you.
  2. yea sure, I'm said already " if you send pong to client and this is in operable state peoples *reverse engineers* can be get your pong. " Maybe you need try first learn reading. Do you want fight? Well, When you send pong to client use polymorphism or encryption as time dynamic and You receive respond as salt and convert again with polymorphism or encrypion as serverside. Try now bypass serverside compare operation.. If you can not send pong as salt or checking validate in client this enough protection for you. We can protect game binary from breakpoints Only 1 API and ~5 line(ntdll.dll!NtSetInformationThread, ThreadHideFromDebugger flag) I think this tip is enough.. We can check code validation in client if you try change any bytes this easy detectable Yea you can unpack themida or enigma in seconds, My suggestion try with hardest like VMProtect or Shielden, dude year is 2016, who is using Themida? xD Ahahahaha, That's enough for me, really. You can continue reverse to upx xD Next time please write with yourself account, kişiliksiz.
  3. "At the first" If you're know reverse engineering, You can get cipher and cipher stored functions from client so you can not need protect client with "pong" mechanism. Marty making disable this stuff because this pretty old and useless Anyone can get your pong anytime, you can get from server as dynamic or you can store in client with veriable. This no problem, if you send pong to client and this is in operable state peoples *reverse engineers* can be get your pong. tl;dr For protection.. "pong" is wrong way. And.. If you get more security, you can start with re-activate sequence mechanism.
  4. You can make little obfuscation trick for your connection, create fake connections with similar ip-ports when your client try connect to gameserver. This isn't solution but good and simple way for scripter kids.
  5. This thread or this problem isn't about "GetPCForce" usage, He is getting error from GetQuestFlag function mistake and my post for this fix. If you are trust ymir "code style" don't change from GetQuestFlag.
  6. True point but your method is for only published exploit, I'm sure have a like similar wrong usages for this flags. So if you want for all general fix you can use my said method.
  7. Game is trying get quest flag result from NULL character pointer, Search in google; "[FIX] quest::PC::GetFlag Crash" and apply it
  8. Python 2.2 a very old version(14 years) almost isn't have supported lib
  9. when button or info begin it can be easily manipulated use as "with pc.is_gm()"
  10. You can use mobber hack without item. Mobber hack work mechanism; 1) Collect vid list in your area 2) Check type from vid (Pc, Mob, Pet ...) 3) Check vid living status 4) Separate ones according to the above and create new vid list 5) Send attack packet in new list members So, you need check mob-player distance and attack state
  11. a few days ago he tried send virus to me
  12. I have a similar design, I ripped from too old german p-server. If you want I can send free https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif
  13. Unfortunately this code copied from inactive file and test function I don't destroy working function
  14. Perfect.. Hidden Content You're excellent What is this?
  15. Perfect.. SVN_VERSION = $(shell svnversion -n .) Change with svn version like SVN_VERSION = 40250
  16. This function for only for him no one else. if you want notice for all players you can use and modify sendhack function In input_main.cpp void CInputMain::Hack(LPCHARACTER ch, const char * c_pData) You can use notice all like this char nbuf[200]; sprintf(nbuf, "%s in %s named player", buf, ch->GetName()); SendNotice(nbuf);
  17. Change classname sprintf(szClassName, "ThisMethodWorksGoodButExampleFixed - %d", random_range(1, 99999));
  18. Serverside solutions always better but have some problems detect for wallhack in serverside For the present, This solution better
  19. M2 Download Center Download Here ( Internal ) *UserInterface/InstanceBase.h Search: protected: UINT __LessRenderOrder_GetLODLevel(); Add it upper: public: bool __CanSkipCollision(); *UserInterface/InstanceBase.cpp Search: void CInstanceBase::__DisableSkipCollision() { m_GraphicThingInstance.DisableSkipCollision(); } Add it under: bool CInstanceBase::__CanSkipCollision() { return m_GraphicThingInstance.CanSkipCollision(); } *UserInterface/PythonNetworkStreamPhaseGame.cpp Search: if (fDstRot < 0.0f) fDstRot = 360 + fDstRot; else if (fDstRot > 360.0f) fDstRot = fmodf(fDstRot, 360.0f); Add it upper any of: Only warning: CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if (pkInstMain){ if (!pkInstMain->IsGoing() && pkInstMain->__CanSkipCollision()){ CPythonChat::Instance().AppendChat(CHAT_TYPE_NOTICE, "Wall hack !"); return false; } } Close game client: CPythonCharacterManager& rkChrMgr =CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if(pkInstMain){ if(!pkInstMain->IsGoing()&& pkInstMain->__CanSkipCollision()){ PostQuitMessage(0); } } Send log and close connection: CPythonCharacterManager& rkChrMgr =CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if(pkInstMain){ if(!pkInstMain->IsGoing()&& pkInstMain->__CanSkipCollision()){ __SendHack("WallHack detected"); } }
  20. M2 Download Center Download Here ( Internal ) In Client Source Open: EterLib/MSWindows.cpp Add this inculde #include "../EterBase/Random.h" Search: sprintf(szClassName, "eter - s%x:b%x:p:%x", style, brush, (DWORD)pfnWndProc); Change: sprintf(szClassName, "eter - s%x:b%x:p:%x:%d", style, brush, (DWORD)pfnWndProc, random_range(1, 99999)); Rebuild and enjoy, After this modification m2bob module isn't find game process
  21. if localeInfo.IsJAPAN(): GUILD_CATEGORY_LIST = ( ("HEADQUARTER", "?bz?), ("FACILITY", "g?z?), ("OBJECT", "???), ) add quote marks -- and please use spoiler for long code
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.