[*] Binary protection state of libstdc++.so.6.0.30
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of libstdc++.so.6.0.30
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.30 @ 0xa29b0 */
| #include <stdint.h>
|
; (fcn) method.std::domain_error.domain_error_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_ () | void method_std::domain_error_domain_error_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_ (int16_t arg1) {
| r0 = arg1;
| /* std::domain_error::domain_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) */
0x000a29b0 invalid |
0x000a29b4 ldr r5, [pc, 0x14] |
0x000a29b6 blx 0x7b248 | sprintf (r0, r1, r2)
0x000a29ba ldr r2, [pc, 0x14] | r2 = *(0xa29d2);
0x000a29bc add r5, pc | r5 = 0x14538c;
0x000a29be mov r3, r5 | r3 = r5;
0x000a29c0 mov r0, r4 | r0 = r4;
0x000a29c2 ldr r3, [r5, r2] | r3 = *(0x14538c);
0x000a29c4 adds r3, 8 | r3 += 8;
0x000a29c6 str r3, [r4] | *(r4) = r3;
0x000a29c8 pop {r3, r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.30 @ 0xa29d4 */
| #include <stdint.h>
|
; (fcn) method.std::invalid_argument.invalid_argument_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_ () | void method_std::invalid_argument_invalid_argument_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_ (int16_t arg1) {
| r0 = arg1;
| /* std::invalid_argument::invalid_argument(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) */
0x000a29d4 invalid |
0x000a29d8 ldr r5, [pc, 0x14] |
0x000a29da blx 0x7b248 | sprintf (r0, r1, r2)
0x000a29de ldr r2, [pc, 0x14] | r2 = *(0xa29f6);
0x000a29e0 add r5, pc | r5 = 0x1453d4;
0x000a29e2 mov r3, r5 | r3 = r5;
0x000a29e4 mov r0, r4 | r0 = r4;
0x000a29e6 ldr r3, [r5, r2] | r3 = *(0x1453d4);
0x000a29e8 adds r3, 8 | r3 += 8;
0x000a29ea str r3, [r4] | *(r4) = r3;
0x000a29ec pop {r3, r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.30 @ 0xa29f8 */
| #include <stdint.h>
|
; (fcn) method.std::length_error.length_error_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_ () | void method_std::length_error_length_error_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_ (int16_t arg1) {
| r0 = arg1;
| /* std::length_error::length_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) */
0x000a29f8 invalid |
0x000a29fc ldr r5, [pc, 0x14] |
0x000a29fe blx 0x7b248 | sprintf (r0, r1, r2)
0x000a2a02 ldr r2, [pc, 0x14] | r2 = *(0xa2a1a);
0x000a2a04 add r5, pc | r5 = 0x14541c;
0x000a2a06 mov r3, r5 | r3 = r5;
0x000a2a08 mov r0, r4 | r0 = r4;
0x000a2a0a ldr r3, [r5, r2] | r3 = *(0x14541c);
0x000a2a0c adds r3, 8 | r3 += 8;
0x000a2a0e str r3, [r4] | *(r4) = r3;
0x000a2a10 pop {r3, r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.30 @ 0xa2a1c */
| #include <stdint.h>
|
; (fcn) method.std::out_of_range.out_of_range_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_ () | void method_std::out_of_range_out_of_range_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_ (int16_t arg1) {
| r0 = arg1;
| /* std::out_of_range::out_of_range(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) */
0x000a2a1c invalid |
0x000a2a20 ldr r5, [pc, 0x14] |
0x000a2a22 blx 0x7b248 | sprintf (r0, r1, r2)
0x000a2a26 ldr r2, [pc, 0x14] | r2 = *(0xa2a3e);
0x000a2a28 add r5, pc | r5 = 0x145464;
0x000a2a2a mov r3, r5 | r3 = r5;
0x000a2a2c mov r0, r4 | r0 = r4;
0x000a2a2e ldr r3, [r5, r2] | r3 = *(0x145464);
0x000a2a30 adds r3, 8 | r3 += 8;
0x000a2a32 str r3, [r4] | *(r4) = r3;
0x000a2a34 pop {r3, r4, r5, pc} |
| }
[*] Function sprintf used 5 times libstdc++.so.6.0.30