From f4361e77dcd332fe67e515942bba7211cf538bb3 Mon Sep 17 00:00:00 2001 From: xamidev Date: Wed, 3 Sep 2025 22:36:41 +0200 Subject: [PATCH] common + arch diff --- README.md | 6 ++++++ helpelf | Bin 20776 -> 21048 bytes main.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1009baf --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# todo + +- display e_type and rest of header for 32/64 +- display protections +- colorful +- maybe display elf sections if command entered (??) diff --git a/helpelf b/helpelf index 37bda3be2cf27a2dcff30dc365db5a77321f09f6..d32093bec2d04382e9a940d4cd3f336890fd3b1f 100755 GIT binary patch delta 4554 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 IPhk9i0jL`H1^@s6 delta 4145 zcmaJ^4RBP|6~6cFzWq(IyV*@PFImYZfPr9k6MoDOfo#a%CIr}2VZfj!lxk2Eu}MJ` zHvCkH3^mK0VMvPaX``G0Y$X%kbS)Yd&Oq{dBNGBZX7R{>uR=K3@ESr9xOXua&2$?#LexE z`|>{SI<)M_=5LCJOjEMbK%=ZIlD=8?Y2pP_5!b}~CcnA{nxJ@A@d~%Ol-G({bC_32 z%Z`+VM+u8zbB_A`G2Jx5)nZYqJ|+IB`kFX1!NQrs7D5^ezTL4c(!{Zls~G zmB7@7=jhU=3)U~nEPgHK(P1R=-`0rew6t@l_@%`!j#$#fdzQhW16g})yWCGA<01E? zn>7+a8?L-a8zH(g{b%VE?zL#&iBa2^ z;yalI#XHqrsXH0=@GvG~qnX!s`3mE2=&I4cK@>-W<57Dcd7w7!N* z(XAUVv7X72(03e@ANYFA{S*boCeJzaD3{3hCTRK^E^OU+f%Rx`*=5Z6jjKuVgs-jW zPQ=FAXTwxyn9g4@(mB5#Ytv6r3Wb(6rE=+4+7OiqH_4OtI)2y!Ll8<5)|i#|mhv9VwxkBKJ=!fOA=$z-p1vtXh& zicxCEBOnXlM~C^8@D%3rbE2#;ztfIcI>}g@;eJ@DOSdS?)2whJ?h*W2V4v`H`!Z>k z_IIF<{vZ2Q*c-)}!aOyAJRcnTr0`u@qYka#IC!Z82&-%h#krDv<)lwILbq`yR)zBU zA<-AA;e+B-DBp8bzgn1a!7(QO4coA&3=?lz_+8uqdW(qW(z%WSW112ZuAS_O5%{T$ z%N6m=!JO9-nSzZG#cxZ)@w;%iRmIu|hRQ9gB~l-QFrP(dni5z77q3}eb#FH_)0Jl` z&aQ<@wW&KH%nigU$*ZC5y0qA=CW1=w-`Su z9xT)1&yrKQ{W%CXPlL0$LV_GF2vkZC~BGIaM}{)MjtIt7vD`FYF!6$AAga;HA~RV zFO#Lk`8dRSPFuvhAd^F(jk*O%InCo z!nOwiUSZ}Sglg4}gO_Ea(9<$pPS8yq0KzjP&p8T{X&aDhK$Opz9N!MC+N?2BzY2A> z`S0j0n(uCC%nE!hxxP&_ZX$i2FG0+g(WQR~MaB|zGkMN0kOqGjY@X|;G2^w=<)t5o z-OUe@B_Kg2|B}FU>2JW|i*qWFPmm~wzXKi5Pa{)+KSCfVL6DyyP#|fO_*)dAP==er zClZ(_K`~!Tc}$Yv27ZxzCQA_F8)%;EB`D>cL@NS_Gd7*s7QuD`Dm!g)7t44aj!Sv* zqj<#VMcwfAqDo{IMo}TX4!x*w`d{Fgqt{d_K~S%$ER8Hv^qQtiP)aq$8J{6}6?#!K zWw?l5)GP_=^`dT+AgUKtE3}fj_b~A)l_EO5=+IumpGuAIeFtvV)kMf3f+=xzleLv# zE?G>8OPehJ0Qr6!T`NkW%i=}I2W*tSlIXA$f!b>!PbIP3atw02oBnPk(Vpw@Vg0F* zD>cjO@Yhbp8rmhl_$dpNS4_u`ZD91l;IpcihK1iu44Q zTJD5xg)!wC=AMOM?RyNr3C8?zY=)!tP0ZI`L_-w9Of<3kB#K+IVa!3FiSKMSo%9O4P_CtBICYL?cLYqzZegyGU0!@e&mD}%tYlFVcQYH^-KPQMQ7|*-WQ1#w z;YN&yPh>2d9S;MUbHg+vXA0g>X{;sioOYhVZ=__yPnNdB>NS|D*#iWWR?@VUO zs4C#Iot4gJuabi~RI#aIbUsEbC&X(sn4PoLN@tN)t#ND^ZA=N5BCXl0t8<;)!!wa% z9wOS{G8Ql(PF3dF8?mw~v$0#nN0rmLT?DI2TqJBocj{D+`sDHJ40P~80U##B*xzpYa@QmZ7h_rPHYAS3a%Br%|!h8B6uMZ z=KbPaipWW9?=Fg2ZQj3%# zIj~XOESJSn3Z}PL4Swp|uF%lC#Itq&&H}@0d>JLsQ?cXkgXxBT{AQ$A6ylFRC^yk8 z8a?i*qVcn=6>IDL>JC^7={t@;GxS9LF)r3MzA#kV^cf$jXzt*=LJYKoJ=iIFGvp!R ziFn0@mVoC_N@K`eq0JB5hYd6=+UA$rjc-UigA?=1$6otVuYZGLWPaS%YfK<`t6!{Z z_1O0tAA|cvqP1LXZ*}u*G13}#ob>5T{Kc6I8u?!ZH+#kE1p&|5pl(P>eBUkzdm;t8 zHYHaNjV!3)c(*3E8x{rZsf|`4+7^}DQ)?6ziA6Qot!L1$5uR9${fDJ`pn9<^R&M`W zxsLXU0iey5I%*LkK)<8sDB6=kYb&?kGgn9N%OzXgHpw2V(KWqd0QTWJ9UTxOZRL)K N8g+CR7q>J|_zz~FPjvtQ diff --git a/main.c b/main.c index d2adc18..aebcc84 100644 --- a/main.c +++ b/main.c @@ -1,5 +1,30 @@ -// goal: -// replace "file" + "checksec" +// This is free and unencumbered software released into the public domain. +// +// Anyone is free to copy, modify, publish, use, compile, sell, or +// distribute this software, either in source code form or as a compiled +// binary, for any purpose, commercial or non-commercial, and by any +// means. +// +// In jurisdictions that recognize copyright laws, the author or authors +// of this software dedicate any and all copyright interest in the +// software to the public domain. We make this dedication for the benefit +// of the public at large and to the detriment of our heirs and +// successors. We intend this dedication to be an overt act of +// relinquishment in perpetuity of all present and future rights to this +// software under copyright law. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// For more information, please refer to +// +// @author xamidev +// @brief Recon tool for ELF32/64 #include #include @@ -83,14 +108,36 @@ int read_elf_magic(FILE* fp) return 0; } +void display_elf_common(unsigned char e_ident[EI_NIDENT]) +{ + // EI_DATA + switch(e_ident[5]) + { + case 0x01: + printf("(LSB) "); + break; + case 0x02: + printf("(MSB) "); + break; + default: + printf("\nInvalid data encoding!\n"); + exit(-EINVAL); + } + + // EI_VERSION + printf("version %d", e_ident[6]); +} + void display_elf32(struct Elf32_Ehdr* header) { - printf("32-bit ELF\n"); + printf("32-bit ELF "); + display_elf_common(header->e_ident); } void display_elf64(struct Elf64_Ehdr* header) { - printf("64-bit ELF\n"); + printf("64-bit ELF "); + display_elf_common(header->e_ident); } unsigned char read_elf_obj_size(FILE* fp)