Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Silkroad Online > SRO Private Server > SRO PServer Guides & Releases
You last visited: Today at 15:02

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

Advertisement



[Small Release] (VSRO) Skilldataenc (de)cryption

Discussion on [Small Release] (VSRO) Skilldataenc (de)cryption within the SRO PServer Guides & Releases forum part of the SRO Private Server category.

Reply
 
Old   #1
 
~Nicole's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 91
Received Thanks: 64
[Small Release] (VSRO) Skilldataenc (de)cryption

Released on RZ a week ago, giving it a shot at epvp aswell. Hope some people find this useful.

Credits to Schickl aswell in helping

Original RZ Post:

Quote:
Hey guys, today I'm releasing my first tool here in the Release section, dont be too hard with me

The tool basically is the same as the SRODecrypt, but with a nice little new addition: it lets you add custom stuff and you don't need to play around with hex Editors anymore! :wink:

What you need: The Download below
  • The Folder HAS to be on a NTFS Drive (Can be any USB drive formatted in the NTFS-System)
  • The Folder has to Contain: SRODecrypt.exe
  • The Folder has to Contain: XiaDecrypt.exe


How to use:
Drag the encrypted Skilldata file onto the XiaDecrypt.exe, then edit it, and Drop it on there again.
Caution: DO NOT Mix TXT Files! Edit one after the other. And always make a backup.

With that said, No hex for custom stuff anymore, easy peasy have fun


Download:

Source:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <string.h>
#include <io.h>

wchar_t encMark[] = L"//encrypt";

int main(int argc, char **argv) {
    wchar_t fileEncMark[9];
    FILE *in = NULL, *ads = NULL, *out = NULL;
    int i = 0;
    unsigned char isEncrypted = 0, encAfterOperation = 0;
    char fileHeader[26];
    char adsPath[MAX_PATH + 11];
    int retval = 0;


    if(argc < 2) {
        printf("Usage: %s <file1> <file2> ...\n", argv[0]);

        retval = 1;
        goto close;
    }

    for(i = 1; i < argc; i++) {
        if(!(in = fopen(argv[i], "r+b"))) {
            printf("Failed to open the file %s\n", argv[i]);
            printf("Skipping this file...\n");

            continue;
        }

        if(fseek(in, -18, SEEK_END)) {
            printf("Seek error(%s; 1)\n", argv[i]);
            printf("Skipping this file...\n");

            fclose(in);

            continue;
        }

        if(!fread(fileEncMark, 18, 1, in)) {
            printf("Read error(Failed to read from %s; 1)\n", argv[i]);
            printf("Skipping this file...\n");

            fclose(in);

            continue;
        }

        if(fseek(in, -26, SEEK_END)) {
            printf("Seek error(%s; 2)\n", argv[i]);
            printf("Skipping this file..\n");

            fclose(in);

            continue;
        }

        if(!fread(fileHeader, 26, 1, in)) {
            printf("Read error(Failed to read from %s; 2)\n", argv[i]);
            printf("Skipping this file...\n");

            fclose(in);

            continue;
        }

        strcpy(adsPath, argv[i]);
        strcat(adsPath, ":");
        strcat(adsPath, "fileHeader");

        if(!(ads = fopen(adsPath, "r+b"))) {
            if(!(ads = fopen(adsPath, "w+b"))) {
                printf("Critical error: Failed to create ADS\n");
                printf("You must use NTFS in order to use this program!!\n");

                fclose(in);

                retval = 3;
                goto close;
            }

            if(!wcsncmp(encMark, fileEncMark, 9)) {
                isEncrypted = 1;
                encAfterOperation = 0;
            } else {
                encAfterOperation = 1;
            }

        } else {

            if(!fread(&isEncrypted, 1, 1, ads)) {
                printf("Failed to read from ADS(%s; 1)\n", argv[i]);
                printf("Skipping this file...\n");

                fclose(in);
                fclose(ads);

                continue;
            }

            if(!fread(fileHeader, 26, 1, ads)) {
                printf("Failed to read from ADS(%s; 2)\n", argv[i]);
                printf("Skipping this file...\n");

                fclose(in);
                fclose(ads);

                continue;
            }

            if(isEncrypted) {
                encAfterOperation = 0;
            } else {
                encAfterOperation = 1;
            }
        }

        fclose(ads);

        if(fseek(in, 0, SEEK_END)) {
            printf("Seek error(%s; 3)\n", argv[i]);
            printf("Skipping this file...\n");

            fclose(in);

            continue;
        }

        if(!encAfterOperation) {
            if(_chsize(_fileno(in), ftell(in) - 26)) {
                printf("Failed to change the size of the file(%s; 1)\n", argv[i]);
                printf("Skipping this file...\n");

                fclose(in);

                continue;
            }
        }

        fclose(in);

        if(_spawnl(_P_WAIT, "SRODecrypt.exe", "SRODecrypt.exe", argv[i], NULL) == -1) {
            printf("Failed to start SRODecrypt.exe\n");
            printf("Make sure that both programs are in the same folder!\n");

            retval = 4;
            goto close;
        }

        if(!(ads = fopen(adsPath, "w+b"))) {
            printf("Failed to create the ADS(%s; ADS; 2)!!\n", argv[i]);
            printf("You won't be able to encrypt this file!\n");

            continue;
        }

        if(!fwrite(&encAfterOperation, 1, 1, ads)) {
            printf("Write error(%s; ADS; 7)\n", argv[i]);
            printf("You may have problems encrypting the file!\n");
        }

        if(!fwrite(fileHeader, 26, 1, ads)) {
            printf("Write error(%s; ADS; 9)\n", argv[i]);
            printf("You may have problems encrypting the file!\n");
        }

        fclose(ads);

        if(encAfterOperation) {
            if(!(out = fopen(argv[i], "ab"))) {
                printf("Failed to open the file %s\n", argv[i]);
                printf("The file is now missing the last 26 bytes!!\n");

                retval = 5;
                goto close;
            }

            if(!fwrite(fileHeader, 26, 1, out)) {
                printf("Write error(%s; 10)\n", argv[i]);
                printf("The file is now missing some bytes at the end!!\n");

                fclose(out);

                retval = 6;
                goto close;
            }

            fclose(out);
        }
    }

    printf("Done!\n");

close:
    printf("Press ENTER to close the program...\n");
    getchar();

    return retval;
}
~Nicole is offline  
Thanks
14 Users
Old 02/06/2012, 10:47   #2
 
evolution007's Avatar
 
elite*gold: 0
Join Date: Feb 2008
Posts: 284
Received Thanks: 90
code looks intresting! thanks for release
evolution007 is offline  
Old 02/06/2012, 15:33   #3
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,988
Received Thanks: 1,783
Thanks a lot, really useful. I couldn't add SRO-R skills though, my client crash for some reason.
18andLife is offline  
Old 02/06/2012, 15:49   #4
 
elite*gold: 0
Join Date: Jan 2012
Posts: 1,867
Received Thanks: 1,091
Thanks for release this ver
•ᵔBeGodOfWarᵔ• is offline  
Old 02/06/2012, 17:04   #5
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,988
Received Thanks: 1,783
Something is wrong with this... Even if I just decrypt it, then encrypt the file without editing it and import to my pk2, my client won't start at all.

Edit: nvm, got it to work. Had to use hex editor though.
18andLife is offline  
Thanks
1 User
Old 02/06/2012, 21:06   #6
 
~Nicole's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 91
Received Thanks: 64
Weird, tested it on 4 machines and it worked just fine, anyways, im still glad it helped some people
~Nicole is offline  
Old 02/07/2012, 09:07   #7
 
jumalauta's Avatar
 
elite*gold: 5
Join Date: May 2007
Posts: 330
Received Thanks: 5,228
Quote:
Originally Posted by ~Nicole View Post
Weird, tested it on 4 machines and it worked just fine, anyways, im still glad it helped some people
Back to the scene eh? Long time no see..
jumalauta is offline  
Thanks
1 User
Old 09/03/2012, 05:28   #8
 
elite*gold: 0
Join Date: Oct 2011
Posts: 43
Received Thanks: 12
Sorry to bump the thread but I need to know, is the file Skilldata.txt or Skilldataenc.txt
thegfx3r is offline  
Old 09/03/2012, 05:37   #9
Chat Killer In Duty


 
PortalDark's Avatar
 
elite*gold: 5
Join Date: May 2008
Posts: 16,308
Received Thanks: 6,469
Arrow Private SRO Main Discussions / Questions -> Private SRO Exploits/Hacks/Bots/Guides

#moved to correct section
PortalDark is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
looking for small guide how run 2nd game server [vsro files]
11/26/2011 - SRO Private Server - 5 Replies
ok i finished with vsro files but if i want run all areas etc i have to have 2-3 game servers running as i know im kinda new with thoose files but know a lot i think but i dont have any idea how run 2-3 game servers like one 2 pc's bcuz i have 2 laptops so is there any change to make this think work on both of them like all areas exept Alexandria and Jangan cave on one pc and Alexandria with Jangan cave on another pc im glad to say fixed all small bugs Fw's are working Fgw working...
Small release
06/04/2011 - EO PServer Guides & Releases - 5 Replies
Okay this ain't anything that's going to blow your mind but at least i am trying. Anyway this is a dds view it allows you to be able to see the pic of the dds as you look threw your files rather then other photoshop then look for the file you want that way. with this your able to just open up the file containing the dds and the mini icon shows the pic. Just click the link below download the file below and install it. If you like my release please push thanks. Thank you DDS VIEWERS
[Small-Release] Get ItemID
12/22/2008 - CO2 PServer Guides & Releases - 18 Replies
Hey guys. Im REALLY bored right now, so gimme stuff to code for you ( please, not like code this and that in LOTF, something that can be useful for any servers ) . Anways, if you sometimes dont got the power to open a damn INI and search for your item to get the ID for some reason, you can just use this. I really dont expect anyone to actually use this I just show people how to do it, aight? Btw, the thing it does is open a console, tells you to type a correct item name and it gives you...
A Small Release
06/30/2008 - EO PServer Guides & Releases - 11 Replies
ok guys, this is an excel file to help you with your database, so that you can stop using sql dumps (which are retarded as hell) or your notepad program. I did not include all of the tables just the most important ones. Nicest thing about this is you can just copy the rows and then paste them directly into your database. Keeps all your stuff nice and neat. THIS ORGINALLY WAS NOT MY IDEA. FUNHACKER IS THE ONE THAT TOLD ME ABOUT IT(unlike some i dont steal peoples stuff and then claim it as my...



All times are GMT +2. The time now is 15:02.


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