Black Gold

I think I found a place checks varying parameters command-line:
------------------------------------------------------
CPU Disasm
Address Hex dump Command Comments
0040E20E |. 3D C0D40100 CMP EAX,1D4C0
0040E213 0F87 8C050000 JA 0040E7A5
0040E219 |> 896424 18 MOV DWORD PTR SS:[ESP+18],ESP
0040E21D |. 399C24 340100 CMP DWORD PTR SS:[ESP+134],EBX
0040E224 |. 75 77 JNE SHORT 0040E29D
0040E226 |. 8D8424 2C0600 LEA EAX,[ESP+62C]
------------------------------------------------------
change it:
0040E213 0F87 8C050000 JA 0040E7A5
to:
0040E213 0F87 8C050000 JB 0040E7A5

ps. forgotten) (see attach)
is this server file can use both black gold and aow ? or there is another server file for aow ?
 
I torment client -
I myself doubt that it is the client for the server, but on the basis of the exchange of client-server - this is it
 
That it is the Age of WUshu russian client,not related to black gold

Can provide valid link to `Black gold` oficial server?

I torment client -
I myself doubt that it is the client for the server, but on the basis of the exchange of client-server - this is it
Не переживай)Кф обещали в августе выложить)
 
That it is the Age of WUshu russian client,not related to black gold
yeah .... my epic fail)))
thank you I opened my eyes)
----------------
2Seymour, да, лажанулся я конкретно) хотя, судя по структуре папок, обмену клиент-сервер - это одна фигня (я считаю), повожусь еще, может и августа ждать не надо будет)))
 
2Seymour, да, лажанулся я конкретно) хотя, судя по структуре папок, обмену клиент-сервер - это одна фигня (я считаю), повожусь еще, может и августа ждать не надо будет)))
Это врят ли)Я тут с похожей хренью возился-ни гугу)

chinese homepage,about the russian i don't think existing
thank you,chinese is enough :)
 
HAha sweet that every1s workin on black gold so no work on making Age of wushu run in standalone was just wandering and all thanks for alot of your contributions guys I really appreciate it
 
Anyone making a packing app?

Here is the correct structure if so, packid seems to represent each pack, and packtime seems to be a sort of 4 byte time stamp, not necessarily a dword, but its not very important.

PHP:
#pragma pack(push, 1)
struct PackHeader
{
    char Magic[10];
    unsigned int FileCount;
    unsigned int DataStart;
    byte Filler00;
};


struct PackFile
{
    short DataLength;
    long long FileOffset;
    DWORD FileRawSize;
    DWORD FilePackSize;
    DWORD PackID;
    DWORD PackTime;
    byte Filler00;
    char FilePath[255];
};
#pragma pack(pop)

I'll post more code later on if people still need help with it, I am not sure if I want to continue and make the full packing app or if I will let others do it.

Basically to read the contents of the pack file you do the following.

PHP:
fopen_s(&pFile, "updater_lua.package", "rb");


if (pFile == NULL)
{
    printf("Could not open package file.\n");
}
else
{
    byte *Pack;
    long pSize = 0;


    pSize = getFileSize(pFile); //Get the size of the file you just opened.


    Pack = new BYTE[pSize]; //size the array to the size of the file
    pHeader = new BYTE[sizeof(PackHeader)]; //size the array for the header
    fread(pHeader, sizeof(PackHeader), 1, pFile); //read the first 19 bytes to header struct.


        memcpy(&cPackHeader, pHeader, sizeof(PackHeader)); //copy the bytes into the struct.


        int fStart = sizeof(PackHeader); //set the file position after the header
        for(int i = 0; i < cPackHeader.FileCount; i++) //loop the amount of files 
        {
            tpFile = new BYTE[sizeof(PackFile)]; //create new array for the file info
            fseek(pFile, fStart, SEEK_SET); //read to the location of the file info
            fread(tpFile, sizeof(PackFile), 1, pFile); //copy it to memory
            memcpy(&cPackFile, tpFile, sizeof(PackFile)); //copy the data to the PackFile
            fStart += cPackFile.DataLength; //add by the size of the file data length
            printf("Offset: %I64d FileSize: %i FilePath: %s\n", cPackFile.FileOffset, cPackFile.FileRawSize, cPackFile.FilePath);
        }
    fclose(pFile);
}

The resulting output will be

PHP:
Offset: 611 FileSize: 14747 FilePath: updater_lua\console.luaOffset: 4544 FileSize: 1561 FilePath: updater_lua\form_confirm.lua
Offset: 5217 FileSize: 4517 FilePath: updater_lua\form_double_server_select.lua
Offset: 6869 FileSize: 3966 FilePath: updater_lua\form_language.lua
Offset: 8575 FileSize: 139530 FilePath: updater_lua\form_main.lua
Offset: 50545 FileSize: 11687 FilePath: updater_lua\form_manual.lua
Offset: 54835 FileSize: 1500 FilePath: updater_lua\game_textsock.lua
Offset: 55318 FileSize: 2852 FilePath: updater_lua\gui.lua
Offset: 56442 FileSize: 11133 FilePath: updater_lua\main.lua
Offset: 60582 FileSize: 51763 FilePath: updater_lua\public.lua
Offset: 77147 FileSize: 2609 FilePath: updater_lua\utils.lua
Press any key to continue . . .

Now if you want to uncompress the data, you can use something like below.

Code:
if(1==1)
{
    int result = 0;
    DWORD input_data_size = 0;
    DWORD output_data_size = 0;
    unsigned char * input_data_ptr = 0;
    unsigned char * output_data_ptr = 0;
    std::vector<unsigned char> input_data;
    std::vector<unsigned char> output_data;


    output_data_size = cPackFile.FileRawSize; //Set the size to the uncompressed file size
    output_data.resize(output_data_size); //resize the array to the size
    output_data_ptr = &output_data[0]; //copy the array to the pointer


    input_data.resize(cPackFile.FilePackSize + 1); //resize the array to the size of the compressed data
    input_data_ptr = &input_data[0]; //copy the array to the pointer
    fseek(pFile, cPackFile.FileOffset, SEEK_SET); //move the read start to the fileoffset
    fread(&input_data[0], 1, cPackFile.FilePackSize, pFile); //read the data into the input array


    result = uncompress(output_data_ptr, &output_data_size, input_data_ptr, cPackFile.FilePackSize); //uncompress the data
}
 
Last edited:
  • Like
Reactions: cmb
HAha sweet that every1s workin on black gold so no work on making Age of wushu run in standalone was just wandering and all thanks for alot of your contributions guys I really appreciate it

What do you mean?
 
Last edited:
i cant crack this stupid .lic file i dont know what i make wrong :(
I have downloaded the cracked .lic from this topic but still the error -.-
 

Attachments

  • problem - Black Gold - RaGEZONE Forums
    problem.webp
    108.1 KB · Views: 455
Sorry, what? Either I've missed something or you should read the entire topic. (Probably the latter.) This is not AoW.

Kirihara
O.o thought it was both sorry and it says Aow(Age of wushu) server so i assumed it was both since every1 started to talk about black gold server files so this stuff dosent work with aow at all?
 
I see... (it was a long night :D) Now i changed only the ip in game_entry.ini and now Serverfiles works fine but i cant test the connection between Server and Client because i still downloading the client

Okey now i think the servers are for BlackGold and Age of Wushu because of this (look at Thumbnail)

I found this in /Res/locations.ini

Wudang, Emei, Shaolin and Tangs are schools from Age of Wushu! o.O
 

Attachments

  • locations - Black Gold - RaGEZONE Forums
    locations.webp
    22.1 KB · Views: 1,082
Last edited:
I see... (it was a long night :D) Now i changed only the ip in game_entry.ini and now Serverfiles works fine but i cant test the connection between Server and Client because i still downloading the client

Okey now i think the servers are for BlackGold and Age of Wushu because of this (look at Thumbnail)

I found this in /Res/locations.ini

Wudang, Emei, Shaolin and Tangs are schools from Age of Wushu! o.O

did you mean this server file is for 2 game ??
what th3 h3ll !!!
it very cool lol !!
 
Back