Editing Lv1.self
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 28: | Line 28: | ||
* ss_server2.fself | * ss_server2.fself | ||
* ss_server3.fself | * ss_server3.fself | ||
= Files common on lv1 = | = Files common on lv1 = | ||
lv1.self delegates a lot of work to the embedded selfs | lv1.self delegates a lot of his work to the embedded selfs wich it loads to different process (see [[Hypervisor Reverse Engineering]]). | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 158: | Line 159: | ||
I did this script quickly to extract the embedded files within lv1. This script doesn't use the file table, is ugly, but works... anyone feel free to improve it --[[User:PsiCoLeO|PsiCoLeO]] 16:11, 22 May 2011 (CDT) | I did this script quickly to extract the embedded files within lv1. This script doesn't use the file table, is ugly, but works... anyone feel free to improve it --[[User:PsiCoLeO|PsiCoLeO]] 16:11, 22 May 2011 (CDT) | ||
How to use it | How to use it | ||
Line 181: | Line 180: | ||
#!/bin/bash | #!/bin/bash | ||
# PsiCoLeO 2011 | # PsiCoLeO 2011 | ||
# | # | ||
# Script to extract the embedded files from lv1.self | # Script to extract the embedded files from lv1.self | ||
# There is no warranty that this script will work for you | # There is no warranty that this script will work for you | ||
# I can not be held | # I can not be held responsable of what you do with this script or any damage you get from using it | ||
# Use it as you please | # Use it as you please | ||
# File names | # File names | ||
files=( "pme_init" "sysmgr_ss.fself" "pme_init.conf" "ss_init.fself" "updater_frontend.fself" "ss_server1.fself" "ss_server2.fself" "ss_server3.fself" ) | files=( "pme_init" "sysmgr_ss.fself" "pme_init.conf" "ss_init.fself" "updater_frontend.fself" "ss_server1.fself" "ss_server2.fself" "ss_server3.fself" ) | ||
#comment and uncomment file sizes and offsets depending on the firmware | #comment and uncomment file sizes and offsets depending on the firmware | ||
# File sizes 3.41 | # File sizes 3.41 | ||
size=( 0x24824 0x5f790 0xAF 0x34eb8 0x239F0 0x811D0 0x4A940 0x38ED0 ) | |||
# File offsets 3.41 | # File offsets 3.41 | ||
offset=( 0x1D00E8 0x1F490C 0x25409C 0x25414C 0x289004 0x2AC9F4 0x32DBC4 0x378504 ) | |||
# File sizes 3.55 | # File sizes 3.55 | ||
#size=( 0x24824 0x5f790 0xAF 0x34EB8 0x239F0 0x813B8 0x4A940 0x38ED0 ) | #size=( 0x24824 0x5f790 0xAF 0x34EB8 0x239F0 0x813B8 0x4A940 0x38ED0 ) | ||
# File offsets 3.55 | # File offsets 3.55 | ||
#offset=( 0x1D00E8 0x1F490C 0x25409C 0x25414C 0x289004 0x2AC9F4 0x32DDAC 0x3786EC ) | #offset=( 0x1D00E8 0x1F490C 0x25409C 0x25414C 0x289004 0x2AC9F4 0x32DDAC 0x3786EC ) | ||
cont=0 | cont=0 | ||
printf "***************************** \n" | printf "***************************** \n" | ||
printf "* Psicoleo's * \n" | printf "* Psicoleo's * \n" | ||
printf "* Dump lv1 Embedded files | printf "* Dump lv1 Embedded files * \n" | ||
printf "***************************** \n\n" | printf "***************************** \n\n" | ||
for file in "${files[@]}" | for file in "${files[@]}" | ||
do | do | ||
Line 241: | Line 215: | ||
printf " %s\n" "${file}" | printf " %s\n" "${file}" | ||
printf "***************************** \n\n" | printf "***************************** \n\n" | ||
printf "%s\n" "${offset[$cont]}" | |||
printf "%s\n" "${size[$cont]}" | |||
printf "%s\n" "${cont}" | |||
dd if=$1 of=$file bs=1 obs=1 skip=$((${offset[$cont]})) count=$((${size[$cont]})) | |||
cont=$(($cont+1)) | |||
done | done | ||
</source> | </source> | ||
Line 603: | Line 577: | ||
=== sc_updater === | === sc_updater === | ||
=== certified_file_verifier === | === certified_file_verifier === | ||
Line 768: | Line 735: | ||
|- | |- | ||
! Name !! Type !! Args !! Description | ! Name !! Type !! Args !! Description | ||
|- | |||
|read(0x%llx, %lld, 0x%llx) || || || | |||
|- | |- | ||
|allocate_buffer(%lld) || || || | |allocate_buffer(%lld) || || || | ||
|- | |||
|release_buffer(0x%llx) || || || | |||
|- | |- | ||
|cache_all_composite_region_entry || || || | |cache_all_composite_region_entry || || || | ||
|- | |- | ||
|get_composite_region_entry_by_index(%d, 0x%llx) || || || | |get_composite_region_entry_by_index(%d, 0x%llx) || || || | ||
|- | |- | ||
|writev || || || | |writev || || || | ||
Line 939: | Line 898: | ||
|- | |- | ||
|sbm_spe_install_signal_handlers || || || | |sbm_spe_install_signal_handlers || || || | ||
|} | |} | ||