mirror of
				https://github.com/EndPwnArchive/cynergy.git
				synced 2024-08-14 22:46:57 +00:00 
			
		
		
		
	using endpwn asar injection instead of extraction
This commit is contained in:
		
							parent
							
								
									b5a05dc306
								
							
						
					
					
						commit
						38915a60fc
					
				
					 1 changed files with 26 additions and 83 deletions
				
			
		| 
						 | 
				
			
			@ -41,7 +41,16 @@ var setup = function () {
 | 
			
		|||
	setTimeout(function () {
 | 
			
		||||
		if (typeof(_cynergy_ver) == "undefined")
 | 
			
		||||
		{
 | 
			
		||||
			logging.innerText += "Cynergy is not installed\n";
 | 
			
		||||
            logging.innerText += "Cynergy is not installed\n";
 | 
			
		||||
            logging.innerText += "Injecting dom-ready listener into app.asar\n";
 | 
			
		||||
            try {
 | 
			
		||||
                asarpwn();
 | 
			
		||||
            } catch (e) {
 | 
			
		||||
                logging.innerText += 'ASARPwn failed.\nIf you are on Linux, try running';
 | 
			
		||||
                logging.innerText += ` chmod -R 777 ${approot().split('app.asar')[0]}`;
 | 
			
		||||
                logging.innerText += ".\nIf that doesn't help, or you are not on Linux, type cleanup() in the console.\n";
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
		}
 | 
			
		||||
        else {
 | 
			
		||||
            if (_cynergy_ver == cyn_ver) {
 | 
			
		||||
| 
						 | 
				
			
			@ -51,17 +60,6 @@ var setup = function () {
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        logging.innerText += "Attempting asar extraction...\n";
 | 
			
		||||
        try{
 | 
			
		||||
            asarpwn_drop();
 | 
			
		||||
            asarpwn();
 | 
			
		||||
        }catch(e){
 | 
			
		||||
            logging.innerText += 'ASARPwn failed.\nIf you are on Linux, try running';
 | 
			
		||||
            logging.innerText += ` chmod -R 777 ${approot().split('app.asar')[0]}`;
 | 
			
		||||
            logging.innerText += ".\nIf that doesn't help, or you are not on Linux, type cleanup() in the console.\n";
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		logging.innerText += "Injecting WEBAPP_ENDPOINT override into settings.json\n";
 | 
			
		||||
		try
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -91,66 +89,16 @@ var endpoint_restore = function () {
 | 
			
		|||
	fs.writeFileSync(settingsjson(), JSON.stringify(settings));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var asarpwn_drop = function () {
 | 
			
		||||
	if (!fs.existsSync(approot().split('app.asar')[0] + '/cynergy')){
 | 
			
		||||
        fs.mkdirSync(approot().split('app.asar')[0] + '/cynergy');
 | 
			
		||||
    }
 | 
			
		||||
    if (!fs.existsSync(approot().split('app.asar')[0] + '/cynergy/lib')){
 | 
			
		||||
        fs.mkdirSync(approot().split('app.asar')[0] + '/cynergy/lib');
 | 
			
		||||
    }
 | 
			
		||||
    if (!fs.existsSync(approot().split('app.asar')[0] + '/cynergy/lib/asar')){
 | 
			
		||||
        fs.mkdirSync(approot().split('app.asar')[0] + '/cynergy/lib/asar');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var asar1 = new XMLHttpRequest();
 | 
			
		||||
    asar1.open('GET', 'https://rawgit.com/electron/asar/master/lib/asar.js');
 | 
			
		||||
    asar1.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/asar/asar.js', asar1.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    asar1.send();
 | 
			
		||||
 | 
			
		||||
    var asar2 = new XMLHttpRequest();
 | 
			
		||||
    asar2.open('GET', 'https://rawgit.com/electron/asar/master/lib/crawlfs.js');
 | 
			
		||||
    asar2.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/asar/crawlfs.js', asar2.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    asar2.send();
 | 
			
		||||
 | 
			
		||||
    var asar3 = new XMLHttpRequest();
 | 
			
		||||
    asar3.open('GET', 'https://rawgit.com/electron/asar/master/lib/disk.js');
 | 
			
		||||
    asar3.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/asar/disk.js', asar3.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    asar3.send();
 | 
			
		||||
 | 
			
		||||
    var asar4 = new XMLHttpRequest();
 | 
			
		||||
    asar4.open('GET', 'https://rawgit.com/electron/asar/master/lib/filesystem.js');
 | 
			
		||||
    asar4.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/asar/filesystem.js', asar4.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    asar4.send();
 | 
			
		||||
 | 
			
		||||
    var asar5 = new XMLHttpRequest();
 | 
			
		||||
    asar5.open('GET', 'https://rawgit.com/electron/asar/master/lib/snapshot.js');
 | 
			
		||||
    asar5.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/asar/snapshot.js', asar5.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    asar5.send();
 | 
			
		||||
var asarpwn = function() {
 | 
			
		||||
    var bdata = new Buffer(fs.readFileSync(remote.app.getAppPath()));
 | 
			
		||||
    bdata.write("mainWindow.webContents.on('dom-ready', function () {require('../i').x(mainWindow)});//", bdata.indexOf("mainWindow.webContents.on('dom-ready', function () {});\x0A\x0A    // Prevent navigation whe"));
 | 
			
		||||
    fs.writeFileSync(remote.app.getAppPath(), bdata);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var asarpwn = function(){
 | 
			
		||||
    let asar = require(approot().split('app.asar')[0] + '/cynergy/lib/asar/asar.js');
 | 
			
		||||
    try{
 | 
			
		||||
        asar.extractAll(approot().split('app.asar')[0]+"/app.asar",approot().split('app.asar')[0] + '/app');
 | 
			
		||||
        _fs.renameSync(approot().split('app.asar')[0]+"/app.asar",approot().split('app.asar')[0]+"/original_app.asar");
 | 
			
		||||
    }catch(e){
 | 
			
		||||
        console.error("asar extraction failed: "+e);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var asarunpwn = function () {
 | 
			
		||||
    _fs.rmdirSync(approot().split('original_app.asar')[0],approot().split('original_app.asar')[0] + '/../app');
 | 
			
		||||
    _fs.renameSync(approot().split('original_app.asar')[0]+"/original_app.asar",approot().split('app.asar')[0]+"/app.asar");
 | 
			
		||||
var asarunpwn = function() {
 | 
			
		||||
    var bdata = new Buffer(fs.readFileSync(remote.app.getAppPath()));
 | 
			
		||||
    bdata.write("mainWindow.webContents.on('dom-ready', function () {});\x0A\x0A    // Prevent navigation whe", bdata.indexOf("mainWindow.webContents.on('dom-ready', function () {require('../i').x(mainWindow)});//"));
 | 
			
		||||
    fs.writeFileSync(remote.app.getAppPath(), bdata);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var data = function () {
 | 
			
		||||
| 
						 | 
				
			
			@ -221,33 +169,28 @@ var dropfiles = function () {
 | 
			
		|||
            fs.writeFileSync(data() + 'style.css', client.responseText);
 | 
			
		||||
        }
 | 
			
		||||
        client.send();
 | 
			
		||||
    }
 | 
			
		||||
    }*/
 | 
			
		||||
    var eclient = new XMLHttpRequest();
 | 
			
		||||
    eclient.open('GET', 'https://cynfoxwell.cf/cynergy/libs/epapi.js');
 | 
			
		||||
    eclient.open('GET', 'https://cynergy.cynfoxwell.cf/libs/epapi.js');
 | 
			
		||||
    eclient.onreadystatechange = function() {
 | 
			
		||||
        if (eclient.readyState === 4) {
 | 
			
		||||
            fs.writeFileSync(approot().split('app.asar')[0] + 'cynergy/epapi.js', eclient.responseText);
 | 
			
		||||
            fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/epapi.js', eclient.responseText);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    eclient.send();
 | 
			
		||||
    var mclient = new XMLHttpRequest();
 | 
			
		||||
    mclient.open('GET', 'https://cynfoxwell.cf/cynergy/libs/main.js');
 | 
			
		||||
    mclient.open('GET', 'https://cynergy.cynfoxwell.cf/libs/main.js');
 | 
			
		||||
    mclient.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + 'cynergy/main.js', mclient.responseText);
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/main.js', mclient.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    mclient.send();
 | 
			
		||||
    var gclient = new XMLHttpRequest();
 | 
			
		||||
    gclient.open('GET', 'http://apo.wds.us/plugins/guild_scrollbar.js');
 | 
			
		||||
    gclient.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + 'cynergy/plugins/guild_scrollbar.js', gclient.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    gclient.send();
 | 
			
		||||
    var lclient = new XMLHttpRequest();
 | 
			
		||||
    lclient.open('GET', 'https://cynfoxwell.cf/cynergy/libs/linq.js');
 | 
			
		||||
    lclient.open('GET', 'https://cynergy.cynfoxwell.cf/libs/linq.js');
 | 
			
		||||
    lclient.onreadystatechange = function() {
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + 'cynergy/lib/linq.js', lclient.responseText);
 | 
			
		||||
        fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/lib/linq.js', lclient.responseText);
 | 
			
		||||
    }
 | 
			
		||||
    lclient.send();*/
 | 
			
		||||
    lclient.send();
 | 
			
		||||
    fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/legal.txt', license);
 | 
			
		||||
    fs.writeFileSync(approot().split('app.asar')[0] + '/cynergy/styles/style.css', "/* custom css here */");
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue