@@ -673,59 +673,66 @@ static int bin_info(RCore *r, int mode) {
673
673
if (IS_MODE_JSON (mode )) {
674
674
r_cons_printf ("{" );
675
675
}
676
- pair_bool ("havecode" , havecode , mode , false);
677
- pair_bool ("pic" , info -> has_pi , mode , false);
676
+ pair_str ("arch" , info -> arch , mode , false);
677
+ pair_int ("binsz" , r_bin_get_size (r -> bin ), mode , false);
678
+ pair_str ("bintype" , info -> rclass , mode , false);
679
+ pair_int ("bits" , info -> bits , mode , false);
678
680
pair_bool ("canary" , info -> has_canary , mode , false);
679
- pair_bool ("nx" , info -> has_nx , mode , false);
681
+ pair_str ("class" , info -> bclass , mode , false);
682
+ if (info -> actual_checksum ) {
683
+ /* computed checksum */
684
+ pair_str ("cmp.csum" , info -> actual_checksum , mode , false);
685
+ }
686
+ pair_str ("compiled" , compiled , mode , false);
680
687
pair_bool ("crypto" , info -> has_crypto , mode , false);
681
- pair_bool ("va" , info -> has_va , mode , false);
688
+ tmp_buf = r_str_escape (info -> debug_file_name );
689
+ pair_str ("dbg_file" , tmp_buf , mode , false);
690
+ free (tmp_buf );
691
+ pair_str ("endian" , info -> big_endian ? "big" : "little" , mode , false);
692
+ pair_bool ("havecode" , havecode , mode , false);
693
+ if (info -> claimed_checksum ) {
694
+ /* checksum specified in header */
695
+ pair_str ("hdr.csum" , info -> claimed_checksum , mode , false);
696
+ }
697
+ pair_str ("guid" , info -> guid , mode , false);
682
698
pair_str ("intrp" , info -> intrp , mode , false);
683
- pair_str ("bintype" , info -> rclass , mode , false);
684
- pair_str ("class" , info -> bclass , mode , false);
685
699
pair_str ("lang" , info -> lang , mode , false);
686
- pair_str ("arch " , info -> arch , mode , false);
687
- pair_int ("bits " , info -> bits , mode , false);
700
+ pair_bool ("linenum " , R_BIN_DBG_LINENUMS & info -> dbg_info , mode , false);
701
+ pair_bool ("lsyms " , R_BIN_DBG_SYMS & info -> dbg_info , mode , false);
688
702
pair_str ("machine" , info -> machine , mode , false);
689
- pair_str ("os" , info -> os , mode , false);
703
+ v = r_anal_archinfo (r -> anal , R_ANAL_ARCHINFO_MAX_OP_SIZE );
704
+ if (v != -1 ) {
705
+ pair_int ("maxopsz" , v , mode , false);
706
+ }
690
707
v = r_anal_archinfo (r -> anal , R_ANAL_ARCHINFO_MIN_OP_SIZE );
691
708
if (v != -1 ) {
692
709
pair_int ("minopsz" , v , mode , false);
693
710
}
694
- v = r_anal_archinfo (r -> anal , R_ANAL_ARCHINFO_MAX_OP_SIZE );
695
- if (v != -1 ) {
696
- pair_int ("maxopsz" , v , mode , false);
711
+ pair_bool ("nx" , info -> has_nx , mode , false);
712
+ pair_str ("os" , info -> os , mode , false);
713
+ if (info -> rclass && !strcmp (info -> rclass , "pe" )) {
714
+ pair_bool ("overlay" , info -> pe_overlay , mode , false);
697
715
}
698
716
v = r_anal_archinfo (r -> anal , R_ANAL_ARCHINFO_ALIGN );
699
717
if (v != -1 ) {
700
718
pair_int ("pcalign" , v , mode , false);
701
719
}
702
- pair_str ("subsys" , info -> subsystem , mode , false);
703
- pair_str ("endian" , info -> big_endian ? "big" : "little" , mode , false);
704
- pair_bool ("stripped" , R_BIN_DBG_STRIPPED & info -> dbg_info , mode , false);
705
- pair_bool ("static" , r_bin_is_static (r -> bin ), mode , false);
706
- pair_bool ("linenum" , R_BIN_DBG_LINENUMS & info -> dbg_info , mode , false);
707
- pair_bool ("lsyms" , R_BIN_DBG_SYMS & info -> dbg_info , mode , false);
720
+ pair_bool ("pic" , info -> has_pi , mode , false);
708
721
pair_bool ("relocs" , R_BIN_DBG_RELOCS & info -> dbg_info , mode , false);
709
- pair_str ("rpath" , info -> rpath , mode , false);
710
- pair_int ("binsz" , r_bin_get_size (r -> bin ), mode , false);
711
- pair_str ("compiled" , compiled , mode , false);
712
- tmp_buf = r_str_escape (info -> debug_file_name );
713
- pair_str ("dbg_file" , tmp_buf , mode , false);
714
- free (tmp_buf );
715
- if (info -> claimed_checksum ) {
716
- /* checksum specified in header */
717
- pair_str ("hdr.csum" , info -> claimed_checksum , mode , false);
718
- }
719
- if (info -> actual_checksum ) {
720
- /* computed checksum */
721
- pair_str ("cmp.csum" , info -> actual_checksum , mode , false);
722
+ tmp_buf = sdb_get (obj -> kv , "elf.relro" , 0 );
723
+ if (tmp_buf ) {
724
+ pair_str ("relro" , tmp_buf , mode , false);
725
+ free (tmp_buf );
722
726
}
727
+ pair_str ("rpath" , info -> rpath , mode , false);
723
728
if (info -> rclass && !strcmp (info -> rclass , "pe" )) {
724
- pair_bool ("overlay" , info -> pe_overlay , mode , false);
725
729
//this should be moved if added to mach0 (or others)
726
730
pair_bool ("signed" , info -> signature , mode , false);
727
731
}
728
-
732
+ pair_bool ("static" , r_bin_is_static (r -> bin ), mode , false);
733
+ pair_bool ("stripped" , R_BIN_DBG_STRIPPED & info -> dbg_info , mode , false);
734
+ pair_str ("subsys" , info -> subsystem , mode , false);
735
+ pair_bool ("va" , info -> has_va , mode , true);
729
736
for (i = 0 ; info -> sum [i ].type ; i ++ ) {
730
737
RBinHash * h = & info -> sum [i ];
731
738
ut64 hash = r_hash_name_to_bits (h -> type );
@@ -742,7 +749,7 @@ static int bin_info(RCore *r, int mode) {
742
749
}
743
750
r_cons_newline ();
744
751
}
745
- pair_str ( "guid" , info -> guid , mode , true);
752
+
746
753
if (IS_MODE_JSON (mode )) r_cons_printf ("}" );
747
754
}
748
755
r_core_anal_type_init (r );
0 commit comments