Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 16:04

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

Advertisement



Enemies location in map

Discussion on Enemies location in map within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2022
Posts: 5
Received Thanks: 0
Enemies location in map

Hello
In conquer online private server the versions before 3D
the X and Y Axis of player is encrypted

for examle when I located at twin city at location (330,252)
the memory values is equal X:28864 and Y:9312

how to decrypt it to get enemies entitylist real locations?
zer0byte is offline  
Old 09/08/2022, 19:49   #2
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,260
Received Thanks: 4,162
From the other threads you keep creating on this topic, it sounds like you're using a proxy. Look at private server source code... they usually have the answers you seek. Idk if this is true for the most updated version of Conquer 3.0 (not 3D), but here's how it's done in 6090 according to :

Code:
private void DecodeSkill()
        {
            SkillId = (ushort) ( ExchangeShortBits(( SkillId ^ ObjectId ^ 0x915d ), 13) + 0x14be );
            var sl = SkillLevel = ( (ushort) ( (byte) SkillLevel ^ 0x21 ) ); // fix for .net 4.6 overflow issue
            TargetObjectId = ( ExchangeLongBits(TargetObjectId, 13) ^ ObjectId ^ 0x5f2d2463 ) + 0x8b90b51a;
            PositionX = (ushort) ( ExchangeShortBits(( PositionX ^ ObjectId ^ 0x2ed6 ), 15) + 0xdd12 );
            PositionY = (ushort) ( ExchangeShortBits(( PositionY ^ ObjectId ^ 0xb99b ), 11) + 0x76de );
        }

        private void EncodeSkill()
        {
            SkillId = (ushort) ( ExchangeShortBits(ObjectId - 0x14be, 3) ^ ObjectId ^ 0x915d );
            SkillLevel = (ushort) ( ( SkillLevel + 0x100 * ( Timestamp % 0x100 ) ) ^ 0x3721 );
            Arg1 = MathUtils.BitFold32(SkillId, SkillLevel);
            TargetObjectId = ExchangeLongBits(( ( TargetObjectId - 0x8b90b51a ) ^ ObjectId ^ 0x5f2d2463u ), 19);
            PositionX = (ushort) ( ExchangeShortBits((uint) PositionX - 0xdd12, 1) ^ ObjectId ^ 0x2ed6 );
            PositionY = (ushort) ( ExchangeShortBits((uint) PositionY - 0x76de, 5) ^ ObjectId ^ 0xb99b );
        }

private static uint ExchangeShortBits(uint data, int bits)
        {
            data &= 0xffff;
            return ( data >> bits | data << ( 16 - bits ) ) & 65535;
        }

        private static uint ExchangeLongBits(uint data, int bits) { return data >> bits | data << ( 32 - bits ); }
Spirited is offline  
Old 09/08/2022, 23:36   #3
 
elite*gold: 0
Join Date: Sep 2022
Posts: 5
Received Thanks: 0
Quote:
Originally Posted by Spirited View Post
From the other threads you keep creating on this topic, it sounds like you're using a proxy. Look at private server source code... they usually have the answers you seek. Idk if this is true for the most updated version of Conquer 3.0 (not 3D), but here's how it's done in 6090 according to :

Code:
private void DecodeSkill()
        {
            SkillId = (ushort) ( ExchangeShortBits(( SkillId ^ ObjectId ^ 0x915d ), 13) + 0x14be );
            var sl = SkillLevel = ( (ushort) ( (byte) SkillLevel ^ 0x21 ) ); // fix for .net 4.6 overflow issue
            TargetObjectId = ( ExchangeLongBits(TargetObjectId, 13) ^ ObjectId ^ 0x5f2d2463 ) + 0x8b90b51a;
            PositionX = (ushort) ( ExchangeShortBits(( PositionX ^ ObjectId ^ 0x2ed6 ), 15) + 0xdd12 );
            PositionY = (ushort) ( ExchangeShortBits(( PositionY ^ ObjectId ^ 0xb99b ), 11) + 0x76de );
        }

        private void EncodeSkill()
        {
            SkillId = (ushort) ( ExchangeShortBits(ObjectId - 0x14be, 3) ^ ObjectId ^ 0x915d );
            SkillLevel = (ushort) ( ( SkillLevel + 0x100 * ( Timestamp % 0x100 ) ) ^ 0x3721 );
            Arg1 = MathUtils.BitFold32(SkillId, SkillLevel);
            TargetObjectId = ExchangeLongBits(( ( TargetObjectId - 0x8b90b51a ) ^ ObjectId ^ 0x5f2d2463u ), 19);
            PositionX = (ushort) ( ExchangeShortBits((uint) PositionX - 0xdd12, 1) ^ ObjectId ^ 0x2ed6 );
            PositionY = (ushort) ( ExchangeShortBits((uint) PositionY - 0x76de, 5) ^ ObjectId ^ 0xb99b );
        }

private static uint ExchangeShortBits(uint data, int bits)
        {
            data &= 0xffff;
            return ( data >> bits | data << ( 16 - bits ) ) & 65535;
        }

        private static uint ExchangeLongBits(uint data, int bits) { return data >> bits | data << ( 32 - bits ); }

This reply contains answer for my question:


(x-32)>>6
(y-32)>>6

but these mathematics changes every huge update in Conquer.exe and not working for the client what I deal with

so how to get actual X,Y values from memory ?
zer0byte is offline  
Old 09/09/2022, 16:14   #4
 
OELABOELA's Avatar
 
elite*gold: 223
Join Date: Dec 2007
Posts: 1,076
Received Thanks: 257
Best way to find out what encryption they are using is by reversing it. Open up conquer in your disassembler and look for the CMsgInteract packet with interactType UseSkill. Look around for string refs/packet IDs and you will find it.

Try to use pseudocode generators to make it 'readable' and convert it to your langauge.
OELABOELA is offline  
Thanks
2 Users
Old 09/09/2022, 16:43   #5
 
elite*gold: 0
Join Date: Sep 2022
Posts: 5
Received Thanks: 0
Quote:
Originally Posted by OELABOELA View Post
Best way to find out what encryption they are using is by reversing it. Open up conquer in your disassembler and look for the CMsgInteract packet with interactType UseSkill. Look around for string refs/packet IDs and you will find it.

Try to use pseudocode generators to make it 'readable' and convert it to your langauge.
Where can i find this Class ByteBuffer.cpp in this video
zer0byte is offline  
Reply

Tags
aimbot


Similar Threads Similar Threads
VSRO Map Editor + SroMapToNavmeshData + MAP LOCATION COORDINATES
11/16/2020 - SRO PServer Guides & Releases - 2 Replies
Wish somebody would teach me how to edit the map, I want to place Christmas trees everywhere :( Anyway, with this release you can edit the map. I know it has been released already, but oh well... Map coordinates in the program (I know it sucks searching for hours for the map) : Jangan: 167 97 CHINA Town_Jangan 168 97 CHINA Town_Jangan
[Selling] Dragonite Nest Location [Auto-Buy] + Free Dratini Hotspot Location for Candyfarming
08/07/2016 - Pokemon Trading - 0 Replies
AutoBuy: https://sellfy.com/p/AuNn/ http://i.imgur.com/QmNYGb1.jpg
Need FULL enemies and map enemies list !
06/29/2013 - Nostale - 4 Replies
Can someone upload the full enemies and map enemies list ? I'll be really grateful !:rolleyes:



All times are GMT +1. The time now is 16:04.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.