Git Product home page Git Product logo

Comments (15)

david12345-code avatar david12345-code commented on July 30, 2024 1

hey can you decrypt this game for me?
https://www.dropbox.com/s/itpz8bkupvzhlfz/STV_MonsterCards-DEMO.rar?dl=0&file_subpath=%2FSTV_MonsterCards-DEMO%2FMonsterCards+DEMO

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024 1

Please try the "No-Key" solution in my Website, if you are only interested in the images:

https://petschko.org/tools/mv_decrypter/#restore-images

If you can't visit my Website due to GEO-Restriction, you can also Download this Project and use it offline on your PC, it also has the No-Key solution (Images only)

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

it seems that the Decrypt-Code isn't in rpg_core.js either

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024

It can vary from game to game... Please provide more information about the game such as name etc and send these both files, so we can ensure its not just a bug in my System.

Please Provide:

  • Game Title
  • Both files

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

I read your scripts,and it's not a bug in your System.
I just download a game that used different way to encrypt.
I will try different methods later.
Thanks for your reply,I am sorry to bother you

Now I know that the maker has hidden the key in a puzzle :)427 lines of codes

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024

If you want, you can give me the game and I debug this game for you, should be 2min then you get the key^^

I wonder why they put in so much effort to protect the files, since it's JavaScript its ultra easy to get the key anyway ^^

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

I aslo wonder why this maker protect the files which he/she found on the Internet and consider
them as his/her own works.
To my surprise,it seems that each file has different key.
Look this

Decrypter.decryptImg = function(url, bitmap) {
    url = this.extToEncryptExt(url);
//Now,url=img/xxx/xxxx.rpgmvp
    var requestFile = new XMLHttpRequest();
    requestFile.open("GET", url);
    requestFile.responseType = "arraybuffer";
    requestFile.send();
	
    requestFile.onload = function () {
        if(this.status < Decrypter._xhrOk) {
            var arrayBuffer = Decrypter.decryptArrayBuffer(requestFile.response);
//For each file,the ArrayBuffer is different.
            bitmap._image.src = Decrypter.createBlobUrl(arrayBuffer);			
            bitmap._image.onload = Bitmap.prototype._onLoad.bind(bitmap);
            bitmap._image.onerror = Bitmap.prototype._onError.bind(bitmap);
        }
    };
};

Maybe I should learn JavaScript later

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024

Thats the normal decryption method (from RPG-Maker)

If you like me to check let me know the Name of the Game~ If you want to have it private you can also write me a E-Mail to [email protected] ^^

//For each file,the ArrayBuffer is different.

Yes the Array-Buffer is the file content, its natural that it is different for each file =)

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024
Decrypter.decryptArrayBuffer = function(arrayBuffer) {
    if (!arrayBuffer) return null;
    var header = new Uint8Array(arrayBuffer, 0, this._headerlength);

    var i;
    var ref = this.SIGNATURE + this.VER + this.REMAIN;
    var refBytes = new Uint8Array(16);
    for (i = 0; i < this._headerlength; i++) {
        refBytes[i] = parseInt("0x" + ref.substr(i * 2, 2), 16);
    }
    for (i = 0; i < this._headerlength; i++) {
        if (header[i] !== refBytes[i]) {
            throw new Error("Header is wrong");
        }
    }

    arrayBuffer = this.cutArrayHeader(arrayBuffer, Decrypter._headerlength);
    var view = new DataView(arrayBuffer);
    
	if (arrayBuffer) {
this.f_DRILLup(view,arrayBuffer);
this.f_dRillUp(view,arrayBuffer);
this.f_dRilLup(view,arrayBuffer);
this.f_dRiLluP(view,arrayBuffer);
this.f_DriLLuP(view,arrayBuffer);
this.f_drIlLUp(view,arrayBuffer);
this.f_DRiLlUp(view,arrayBuffer);
this.f_DrILlup(view,arrayBuffer);
this.f_dRIllup(view,arrayBuffer);
this.f_DrilLup(view,arrayBuffer);
this.f_drilLup(view,arrayBuffer);
this.f_DrIllUp(view,arrayBuffer);
this.f_dRILLUp(view,arrayBuffer);
this.f_drillup(view,arrayBuffer);
this.f_dRiLLuP(view,arrayBuffer);
this.f_dRIlLup(view,arrayBuffer);
this.f_DrILluP(view,arrayBuffer);
this.f_DRiLLUp(view,arrayBuffer);
this.f_driLLUp(view,arrayBuffer);
this.f_DRilLup(view,arrayBuffer);
this.f_DrillUp(view,arrayBuffer);
this.f_drIlluP(view,arrayBuffer);
this.f_dRIlLUp(view,arrayBuffer);
this.f_DRiLLuP(view,arrayBuffer);
this.f_dRiLLUp(view,arrayBuffer);
this.f_drILLuP(view,arrayBuffer);
this.f_DRIlluP(view,arrayBuffer);
this.f_DRILlup(view,arrayBuffer);
this.f_dRiLLup(view,arrayBuffer);
this.f_driLlup(view,arrayBuffer);
this.f_drILLup(view,arrayBuffer);
this.f_DRiLluP(view,arrayBuffer);
this.f_driLLup(view,arrayBuffer);
this.f_drIllUp(view,arrayBuffer);
this.f_DRilluP(view,arrayBuffer);
this.f_DrILlUp(view,arrayBuffer);
this.f_DRIlLUp(view,arrayBuffer);
this.f_drillUp(view,arrayBuffer);
this.f_DrIllup(view,arrayBuffer);
this.f_DrILLUp(view,arrayBuffer);
this.f_DRIllup(view,arrayBuffer);
this.f_drIlLup(view,arrayBuffer);
this.f_dRILlup(view,arrayBuffer);
this.f_DrIlLuP(view,arrayBuffer);
this.f_drilLuP(view,arrayBuffer);
this.f_drIllup(view,arrayBuffer);
this.f_DrIlLUp(view,arrayBuffer);
this.f_DRiLlup(view,arrayBuffer);
this.f_DRilLUp(view,arrayBuffer);
this.f_dRIllUp(view,arrayBuffer);
this.f_dRiLlUp(view,arrayBuffer);
this.f_DrILLup(view,arrayBuffer);
this.f_DrilluP(view,arrayBuffer);
this.f_dRIlluP(view,arrayBuffer);
this.f_dRIlLuP(view,arrayBuffer);
this.f_drILluP(view,arrayBuffer);
this.f_DRiLLup(view,arrayBuffer);
this.f_DRILluP(view,arrayBuffer);
this.f_DrillUP(view,arrayBuffer);
this.f_DrILLuP(view,arrayBuffer);
this.f_DRILLUp(view,arrayBuffer);
this.f_Drillup(view,arrayBuffer);
this.f_drilluP(view,arrayBuffer);
this.f_dRillup(view,arrayBuffer);
this.f_DriLluP(view,arrayBuffer);
this.f_DriLLUp(view,arrayBuffer);
this.f_drIlLuP(view,arrayBuffer);
this.f_driLlUp(view,arrayBuffer);
this.f_DRillUP(view,arrayBuffer);
this.f_DrilLuP(view,arrayBuffer);
this.f_dRILlUp(view,arrayBuffer);
this.f_DRilLuP(view,arrayBuffer);
this.f_dRiLlup(view,arrayBuffer);
this.f_dRilLUp(view,arrayBuffer);
this.f_DrIlluP(view,arrayBuffer);
this.f_DRillup(view,arrayBuffer);
this.f_DRillUp(view,arrayBuffer);
this.f_DRIllUp(view,arrayBuffer);
this.f_dRILLuP(view,arrayBuffer);
this.f_drILLUp(view,arrayBuffer);
this.f_dRILluP(view,arrayBuffer);
this.f_driLLuP(view,arrayBuffer);
this.f_dRILLup(view,arrayBuffer);
this.f_DRIlLuP(view,arrayBuffer);
this.f_dRillUP(view,arrayBuffer);
this.f_DRILlUp(view,arrayBuffer);
this.f_DRILLuP(view,arrayBuffer);
this.f_DriLlup(view,arrayBuffer);
this.f_DriLLup(view,arrayBuffer);
this.f_DrilLUp(view,arrayBuffer);
this.f_dRilLuP(view,arrayBuffer);
this.f_dRilluP(view,arrayBuffer);
this.f_DrIlLup(view,arrayBuffer);
this.f_drillUP(view,arrayBuffer);
this.f_drILlUp(view,arrayBuffer);
this.f_drilLUp(view,arrayBuffer);
this.f_DRIlLup(view,arrayBuffer);
this.f_drILlup(view,arrayBuffer);
this.f_driLluP(view,arrayBuffer);
this.f_DriLlUp(view,arrayBuffer);

	}
	return arrayBuffer;
};

just like a puzzle

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

For some difficult encrypt files,we could copy the function from rpg_core.js(game) to Decrypter.js.
But it takes too long to decrypt files in each folders

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024

I cant help here since i dont have the game^^

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

I cant help here since i dont have the game^^

I solve the problem by myself , just copy the funtion from the game
but can we decrypt all files in different folders ? so that it would be more convenient

from rpg-maker-mv-decrypter.

Petschko avatar Petschko commented on July 30, 2024

You cant do this, a Website/HTML-Document doesn't have access to your File-System. You can only select multiple Files inside a Folder but can't process a File-Tree.

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

what a pity.
all in all ,thanks a lot.

from rpg-maker-mv-decrypter.

frostylight avatar frostylight commented on July 30, 2024

hey can you decrypt this game for me?
https://www.dropbox.com/s/itpz8bkupvzhlfz/STV_MonsterCards-DEMO.rar?dl=0&file_subpath=%2FSTV_MonsterCards-DEMO%2FMonsterCards+DEMO

I can't visit the website because it's limited in my country,sorry
maybe you should open a new issues or just send it to Petschko

from rpg-maker-mv-decrypter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.