ELF101 a Linux executable walkthrough
-
Upload
ange-albertini -
Category
Technology
-
view
409 -
download
12
description
Transcript of ELF101 a Linux executable walkthrough
/px//x//x//x//x//x//x//x//x//x//x/gx//x//x//x/gxxffffffffffffffff
T/x//x//x//xT/x//x//x//x/ix//x//x//x//x//x//x//xxffffffffffffffff
m\xvixvRxvzx/px/px/px//x//x//x//x//x//x//x//x//xx u'\ffffffffffff/_x//x/yx//x/px//x//x//xz/x//x//x/gxv/x//x//x//xxffffffff`fffSfffR/x//x//x//x//x//x//x//xyvx//x_/x//x/px//x_gx//xxÀfffffffvfffffºf/vx//x/yx//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
/px//x//x//x//x//x//x//x//x//x//x/gx//x//x//x/gxxffffffffffffffffT/x//x//x//xT/x//x//x//x/ix//x//x//x//x//x//x//xxffffffffffffffff
//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/Vx//x//x//x/px//x//x//xxffffffffffffffff/zx//x//x//xz/x//x//x/gxz/x//x//x//x__x//x//x//xxffff`fff`fffdfff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffffppx//x//x//x/px//x//x//x/_x//x//x//xc/x//x//x/gxxffffffffffffffffc/x//x//x//x/Nx//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/px//x//x//x/yx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//xT/x//x//x//xpcx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
//x_uxmyxzgxmyxmvxm_xmvxzpxz_x//x_uxmvxzixmgxmvxxffshstrtabfftext
//x_uxm_xz\xzvxzpxmvxzpx//x//x//x//x//x//x//x//xxffrodataffffffff
vgxzixzRxzRxz\x_/ximxz\xm_xzRxzvx_px/Tx//x//x//xxXellofWorldoffff
m\xvixvRxvzx/px/px/px//x//x//x//x//x//x//x//x//xx u'\ffffffffffff/_x//x/yx//x/px//x//x//xz/x//x//x/gxv/x//x//x//xxffffffff`fffSfffR/x//x//x//x//x//x//x//xyvx//x_/x//x/px//x_gx//xxÀfffffffvfffffºf/vx//x/yx//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/Vx//x//x//x/px//x//x//xxffffffffffffffff/zx//x//x//xz/x//x//x/gxz/x//x//x//x__x//x//x//xxffff`fff`fffdfff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffffppx//x//x//x/px//x//x//x/_x//x//x//xc/x//x//x/gxxffffffffffffxfffc/x//x//x//x/Nx//x//x//x//x//x//x//x//x//x//x//xxxfffffffffffffff//x//x//x//x//x//x//x//x/px//x//x//x/yx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//xT/x//x//x//xpcx//x//x//xxffffffffxfffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
Vcxc/x//x//x/gxVTx/Nx//x//x//xVVx/px//x//x//xVgxx¹fxfffºffff»ffff¸/vx//x//x//xRNxg/xVVx/px//x//x//xVgx/px//x//x//xxffffÍ€»ffff¸ffffRNxg/x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxÍ€ffffffffffffff
vgxzixzRxzRxz\x_/ximxz\xm_xzRxzvx_px/Tx//x//x//xxXellofWorldoffff
//x_uxmyxzgxmyxmvxm_xmvxzpxz_x//x_uxmvxzixmgxmvxxffshstrtabfftext//x_uxm_xz\xzvxzpxmvxzpx//x//x//x//x//x//x//x//xxffrodataffffffff
m\xvixvRxvzx/px/px/px//x//x//x//x//x//x//x//x//xx u'\ffffffffffff/_x//x/yx//x/px//x//x//xz/x//x//x/gxv/x//x//x//xxffffffff`fffSfffR/x//x//x//x//x//x//x//xyvx//x_/x//x/px//x_gx//xxÀfffffffvfffffºf/vx//x/yx//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
/px//x//x//x//x//x//x//x//x//x//x/gx//x//x//x/gxxffffffffffffffffi/x//x//x//xi/x//x//x//x/ix//x//x//x//x//x//x//xxffffffffffffffff
Vcxc/x//x//x/gxVTx/Nx//x//x//xVVx/px//x//x//xVgxx¹fxfffºffff»ffff¸/vx//x//x//xRNxg/xVVx/px//x//x//xVgx/px//x//x//xxffffÍ€»ffff¸ffffRNxg/x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxÍ€ffffffffffffff
vgxzixzRxzRxz\x_/ximxz\xm_xzRxzvx_px/Tx//x//x//xxXellofWorldoffff
//x_uxmyxzgxmyxmvxm_xmvxzpxz_x//x_uxmvxzixmgxmvxxffshstrtabfftext//x_uxm_xz\xzvxzpxmvxzpx//x//x//x//x//x//x//x//xxffrodataffffffff
//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/Vx//x//x//x/px//x//x//xxffffffffffffffff/zx//x//x//xz/x//x//x/gxz/x//x//x//x__x//x//x//xxffff`fff`fffdfff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffffppx//x//x//x/px//x//x//x/_x//x//x//xc/x//x//x/gxxffffffffffffxfffc/x//x//x//x/Nx//x//x//x//x//x//x//x//x//x//x//xxxfffffffffffffff//x//x//x//x//x//x//x//x/px//x//x//x/yx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//xT/x//x//x//xpcx//x//x//xxffffffffxfffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
Vcxc/x//x//x/gxVTx/Nx//x//x//xVVx/px//x//x//xVgxx¹fxfffºffff»ffff¸
/vx//x//x//xRNxg/xVVx/px//x//x//xVgx/px//x//x//xxffffÍ€»ffff¸ffff
RNxg/x//x//x//x//x//x//x//x//x//x//x//x//x//x//xx̀ffffffffffffff
Sections1ynames
&odeexecutableyinformation
ProgramyHeaderytableRxecutionyinformation
technicalydetailsyforyidentificationyandyexecution
Header
Linkingy0connectingyprogramyobjects.yinformationSectionyHeaderytable
sectionscontentsyofytheyexecutable
informationyusedybyytheycodezata
RLYyheaderidentifyyasyanyRLYytype
specifyytheyarchitecture
x-9yassembly Rquivalenty&ycode
RLYinkableormat
wTw
wtheyRLYyheaderyisyparsedtheyProgramyHeaderyisyparsed0Sectionsyareynotyused.
versionywITUTwNVwwVUT
7ngey7lbertinicorkamiIcom
Hexadecimalydump 7S&IIydumpYields Values Rxplanation
Offset,/xR/
SectionyHeaderytable
Offset,/xc/:Tddress,/xg////c/
Offset,/xz/:Tddress,/xg////z/
a Linux executable walkthrough
Offset,/xv/:Tddress,/xg////v/
header
TheyRLYywasyfirstyspecifiedybyyUISIyLIforyUNIXySystemyV/yinyw**T
TheyRLYyisyused/yamongyothers/yinByyAyLinux/y7ndroid/y25Sz/ySolaris/y5eOSyAyPSP/yPlaystationyUAX/yzreamcast/yZame&ube/yWiiAyvariousyOSesymadeybyySamsung/yRricsson/yNokia/AyMicrocontrollersyfromy7tmel/yTexasyInstruments
simpleIelfdownloady@yelfwTwIcorkamiIcom
SH7AwBy9:U,*9-:b-:b:X*bwNfd,*bTNXXa,-*TebcadcNb
Thisyisytheywholeyfile/yhowever/ymostyRLYyfilesycontainymanyymoreyelementsIRxplanationsyareysimplified/yforyconcisenessI
xecutable
technicalydetailsyforylinking0ignoredyforyexecution.
header
yyyyyyyyyyyyyyyyv
p_typep_offsetp_vaddrp_paddrp_fileszp_memszp_flags
movxecx€x/xg///c/movxedx€x/xNmovxebx€xpmovxeax€xvintx/xg/
movxebx€xpmovxeax€xpintx/xg/ exitb1A;
m\xvixvRxvzx/px/px/px//x//x//x//x//x//x//x//x//xxfu'\ffffffffffff
/_x//x/yx//x/px//x//x//xz/x//x//x/gxv/x//x//x//xxffffffff`fffSfff
R/x//x//x//x//x//x//x//xyvx//x_/x//x/px//x_gx//xxÍfffffffvfffffºf
/vx//x/yx//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffff
/px//x//x//x//x//x//x//x//x//x//x/gx//x//x//x/gxxxffffffffffffffff
T/x//x//x//xT/x//x//x//x/ix//x//x//ffffxxxxxxxxxxxxxxffffffff
e_identxxxuP_MTUxxuP_R'TSS€xuP_NTTTxxuP_VuRSPONe_typee_machinee_versione_entrye_phoffe_shoffe_ehsizee_phentsizee_phnume_shentsizee_shnume_shstrndx
dXelloxWorldo\rd€x/
Vcxc/x//x//x/gxVTx/Nx//x//x//xVVx/px//x//x//xVgxxffffffffffffffff
/vx//x//x//xRNxg/xVVx/px//x//x//xVgx/px//x//x//xxffffffffffffffff
RNxg/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff
vgxzixzRxzRxz\x_/ximxz\xm_xzRxzvx_px/Tx//xxxxxxxxXellofWorldoff
constantysignatureNUybits/yLittleARndian7lwaysywRxecutableIntelyN-9y0andylater.7lwaysyw7ddressywhereyexecutionystartsProgramyHeaders1yoffsetSectionyHeaders1yoffsetRlfyheader1sysizeSizeyofyaysingleyProgramyHeader&ountyofyProgramyHeadersSizeyofyaysingleySectionyHeader&ountyofySectionyHeadersIndexyofytheynames1ysectionyinytheytable
TheysegmentyshouldybeyloadedyinymemoryOffsetywhereyityshouldybeyreadVirtualyaddressywhereyityshouldybeyloadedPhysicalyaddressywhereyityshouldybeyloadedSizeyonyfileSizeyinymemoryReadableyandyeXecutable
p_vaddr
Virt
ual A
ddre
ss
0x00
Offs
et
0x8000000
LOAD Segment
writeb2Hello6World8\r2,6STDOUT,6lenb2Hello6World8\r2AA;
Strings
0x80000A0
zissectedyfile
Loadingyprocess
Trivia
/xm\€xdu'\dpxxxx€pp_yp/xg////z//xv//xR//xyv/x_/p/x_gvy
p//xg///////xg///////xT//xT/i
u'\NTTT_'SVu'\R'TSSy_
//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/Vx//x//x//x/px//x//x//xxffffffffffffffff/zx//x//x//xz/x//x//x/gxz/x//x//x//x__x//x//x//xxffff`fff`fffdfff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffffppx//x//x//x/px//x//x//x/_x//x//x//xc/x//x//x/gxxffffffffffffffffc/x//x//x//x/Nx//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x/px//x//x//x/yx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//xT/x//x//x//xpcx//x//x//xxffffffffffffffff//x//x//x//x//x//x//x//x//x//x//x//x//x//x//x//xxffffffffffffffff
ddxxfshrtrtabxxftextxxxxfrodata//x_uxmyxzgxmyxmvxm_xmvxzpxz_x//x_uxmvxzixmgxmvxxffshstrtabfftext//x_uxm_xz\xzvxzpxmvxzpx//xxxxxxxxxxxxxxxxxxxxxxxffrodataf
SectionynamesOffset,/xT/
p _ y v
mzi
g
///,
/v/,
/z/,
/c/,
/a/,
/T/,returnxcode
msg
MSU_'uN
STNOUT
SR_WRPTu
SR_uXPT
systemxcall
systemxcall
uV_RURRuNT
uT_uXuR
uM_ygz
uV_RURRuNT
PT_'OTN
P\_R|P\_X
p_memsz
Utheyfileyisymappedyinymemoryaccordingytoyitsysegment0s.
Mapping NRntryyisycalledSyscallsyyyareyaccessedyviaByAySyscallynumberyinytheyR7XyregisteryAycallingyInterruptyTx-T
Rxecution
N
kernelservices
IndexyyyyNameyyyyyyyyyyyyyyyTYPRyyyyyyyyyyyyyyyyyyyyyyYL7ZSyyyyyyyyyyyyyyyyyy7zzRRSSyyyyyyyyyyyyOYYSRTyyyyyyyySIZR6066<null>6666606
6166.text666666166666666666666666666660x8000060660x606660x22
6266.rodata6666166666666666266666666660x8000090660x906660x0D
6366.shrtrtab6636666666666666666666666666666666660xA06660x19
SXT_PROUVPTSxºprogram»
SXT_NU''xºinactive»
SXT_PROUVPTSxºprogram»
SXT_STRTTVxºstringxtable»
SX\_T''ORxºallocated»SX\_uXuRPNSTRxºexecutable»
SX\_T''ORxºallocated»
relativexoffsetsinxnames¹xsection
sh_type sh_flags sh_addr sh_offset sh_sizesh_name
~$uname -pi686~$./simple.elf Hello World!
static
nix ystem aboratories
,
wVU
UVU
w
U
N
p_offset
p_filesz
0xA0