$sudo cat /sys/devices/cpu/events/cache-misses event=0x81 $sudo cat /sys/devices/cpu/type 4 $sudo cat /sys/devices/cpu/events/branch-instructions event=0xc2 $sudo cat /sys/devices/cpu/events/branch-instructions event=0xc2 $sudo cat /sys/devices/cpu/events/branch-instructions event=0xc2 $sudo cat /sys/devices/cpu/events/branch-instructions event=0xc2 $sudo cat /sys/devices/cpu/events/branch-misses event=0xc3 $sudo cat /sys/devices/cpu/events/branch-misses event=0xc3 $sudo cat /sys/devices/cpu/events/cache-references event=0x80 $sudo cat /sys/devices/cpu/events/cpu-cycles event=0x76 $sudo cat /sys/devices/cpu/events/instructions event=0xc0 $
Example related — Recovering typical deleted file in GNU/Linux
$which glxgears
/usr/bin/glxgears
$rm /usr/bin/glxgears
rm: remove write-protected regular file ‘/usr/bin/glxgears’? y
rm: cannot remove ‘/usr/bin/glxgears’: Permission denied
$sudo rm /usr/bin/glxgears
[sudo] password for jeffrin:
$ps aux | grep glxgears
jeffrin 2469 4.4 0.6 157656 20888 pts/0 Sl+ 22:43 0:07 glxgears
jeffrin 2515 0.0 0.0 12656 1560 pts/1 S+ 22:46 0:00 grep glxgears
$sudo cat /proc/246
2466/ 2467/ 2469/
$sudo cat /proc/2469/exe > /usr/bin/glxgears
bash: /usr/bin/glxgears: Permission denied
$sudo cat /proc/2469/exe > /usr/bin/glxgears
bash: /usr/bin/glxgears: Permission denied
$su
Password:
root>cat /proc/2469/exe > /usr/bin/glxgears
root>exit
$/usr/bin/glx
glxdemo glxheads glxinfo
$ls -l /usr/bin/glxgears
-rw-r--r-- 1 root root 23088 May 13 22:47 /usr/bin/glxgears
$ls -l /usr/bin/gl
glib-compile-resources glib-genmarshal glib-mkenums glxdemo glxheads
glib-compile-schemas glib-gettextize glilypond glxgears glxinfo
$ls -l /usr/bin/glxdemo
-rwxr-xr-x 1 root root 10376 Jul 8 2014 /usr/bin/glxdemo
$ls -l /usr/bin/glxgears
-rw-r--r-- 1 root root 23088 May 13 22:47 /usr/bin/glxgears
$sudo chmod +x /usr/bin/glxgears
$ls -l /usr/bin/glxgears
-rwxr-xr-x 1 root root 23088 May 13 22:47 /usr/bin/glxgears
$/usr/bin/glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
379 frames in 5.0 seconds = 75.789 FPS
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
after 1627 requests (1627 known processed) with 0 events remaining.
$
Example for – Trace all system calls which involve process management
$strace -e trace=process python dig.py
execve("/usr/bin/python", ["python", "dig.py"], [/* 39 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x7feb563b4700) = 0
I think lscpu command is using proc filesystem to get data.
/* /sys paths */
#define _PATH_SYS_SYSTEM "/sys/devices/system"
#define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu"
#define _PATH_SYS_NODE _PATH_SYS_SYSTEM "/node"
#define _PATH_PROC_XEN "/proc/xen"
#define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities"
#define _PATH_PROC_CPUINFO "/proc/cpuinfo"
#define _PATH_PROC_PCIDEVS "/proc/bus/pci/devices"
#define _PATH_PROC_SYSINFO "/proc/sysinfo"
#define _PATH_PROC_STATUS "/proc/self/status"
#define _PATH_PROC_VZ "/proc/vz"
#define _PATH_PROC_BC "/proc/bc"
#define _PATH_PROC_DEVICETREE "/proc/device-tree"
#define _PATH_DEV_MEM "/dev/mem"
Number of commands found is : 0
exit_group(0) = ?
+++ exited with 0 +++
$man strace
$man strace
$
Hacking with a JavaScript Program
var drawCats = function (howManyTimes) {
for (var i = 0; i < howManyTimes; i++) {
console.log(i + " =^.^=);
}
};
drawCats(11);
VM455:4 Uncaught SyntaxError: Unexpected token ILLEGALmessage: "Unexpected token ILLEGAL"stack: (...)get stack: function () { [native code] }arguments: nullcaller: nulllength: 0name: ""prototype: StackTraceGetter__proto__: function Empty() {}set stack: function () { [native code] }arguments: nullcaller: nulllength: 1name: ""prototype: StackTraceSetter__proto__: function Empty() {}__proto__: Errorconstructor: function SyntaxError() { [native code] }name: "SyntaxError"stack: (...)get stack: function () { [native code] }set stack: function () { [native code] }__proto__: d
var drawCats = function (howManyTimes) {
for (var i = 0; i < howManyTimes; i++) {
console.log(i + " =^.^= ");
}
};
drawCats(11);
VM504:4 0 =^.^=
VM504:4 1 =^.^=
VM504:4 2 =^.^=
VM504:4 3 =^.^=
VM504:4 4 =^.^=
VM504:4 5 =^.^=
VM504:4 6 =^.^=
VM504:4 7 =^.^=
VM504:4 8 =^.^=
VM504:4 9 =^.^=
VM504:4 10 =^.^=
undefined
Hacking with strace to find about write calls in a program
$strace -e write python dig.py write(1, "\33[31mI think lscpu command is us"..., 69I think lscpu command is using proc filesystem to get data. ) = 69 write(1, "\33[31m/* /sys paths */\33[0m\n", 26/* /sys paths */ ) = 26 write(1, "\33[31m#define _PATH_SYS_SYSTEM "..., 63#define _PATH_SYS_SYSTEM "/sys/devices/system" ) = 63 write(1, "\33[31m#define _PATH_SYS_CPU "..., 65#define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu" ) = 65 write(1, "\33[31m#define _PATH_SYS_NODE "..., 66#define _PATH_SYS_NODE _PATH_SYS_SYSTEM "/node" ) = 66 write(1, "\33[31m#define _PATH_PROC_XEN "..., 53#define _PATH_PROC_XEN "/proc/xen" ) = 53 write(1, "\33[31m#define _PATH_PROC_XENCAP "..., 72#define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities" ) = 72 write(1, "\33[31m#define _PATH_PROC_CPUINFO "..., 57#define _PATH_PROC_CPUINFO "/proc/cpuinfo" ) = 57 write(1, "\33[31m#define _PATH_PROC_PCIDEVS "..., 65#define _PATH_PROC_PCIDEVS "/proc/bus/pci/devices" ) = 65 write(1, "\33[31m#define _PATH_PROC_SYSINFO "..., 57#define _PATH_PROC_SYSINFO "/proc/sysinfo" ) = 57 write(1, "\33[31m#define _PATH_PROC_STATUS "..., 61#define _PATH_PROC_STATUS "/proc/self/status" ) = 61 write(1, "\33[31m#define _PATH_PROC_VZ \"/p"..., 44#define _PATH_PROC_VZ "/proc/vz" ) = 44 write(1, "\33[31m#define _PATH_PROC_BC \"/p"..., 44#define _PATH_PROC_BC "/proc/bc" ) = 44 write(1, "\33[31m#define _PATH_PROC_DEVICETR"..., 61#define _PATH_PROC_DEVICETREE "/proc/device-tree" ) = 61 write(1, "\33[31m#define _PATH_DEV_MEM "..., 52#define _PATH_DEV_MEM "/dev/mem" ) = 52 write(1, "\33[31m\33[0m\n", 10 ) = 10 write(1, "Number of commands found is : 0"..., 33Number of commands found is : 0 ) = 33 +++ exited with 0 +++ $
Internal of lscpu command
I think lscpu command is using proc filesystem to get data. /* /sys paths */ #define _PATH_SYS_SYSTEM "/sys/devices/system" #define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu" #define _PATH_SYS_NODE _PATH_SYS_SYSTEM "/node" #define _PATH_PROC_XEN "/proc/xen" #define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities" #define _PATH_PROC_CPUINFO "/proc/cpuinfo" #define _PATH_PROC_PCIDEVS "/proc/bus/pci/devices" #define _PATH_PROC_SYSINFO "/proc/sysinfo" #define _PATH_PROC_STATUS "/proc/self/status" #define _PATH_PROC_VZ "/proc/vz" #define _PATH_PROC_BC "/proc/bc" #define _PATH_PROC_DEVICETREE "/proc/device-tree" #define _PATH_DEV_MEM "/dev/mem"
Looking into a few commands with python interactive shell
ABOUT PYTHON
Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.[26] Van Rossum led the language community until stepping down as leader in July 2018.[27][28]
TYPICAL PYTHON SHELL EXPOSURE
[python]
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, os
>>> len(dir(sys))
69
>>> len(dir(os))
235
>>> len(dir(os.oath))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: ‘module’ object has no attribute ‘oath’
>>> len(dir(os.path))
53
>>>
[/python]
[python]
Python 2.7.15+ (default, Feb 16 2019, 10:39:20)
[GCC 8.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help
Type help() for interactive help, or help(object) for help about object.
>>> help()
Welcome to Python 2.7! This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/2.7/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics". Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".
help> help if
no Python documentation found for ‘help if’
help> if
Related help topics: TRUTHVALUE
help> keywords
Here is a list of the Python keywords. Enter any keyword to get more help.
and elif if print
as else import raise
assert except in return
break exec is try
class finally lambda while
continue for not with
def from or yield
del global pass
help>
[/python]]
LINKS
https://en.wikipedia.org/wiki/Python_(programming_language)
https://docs.python.org/3/tutorial/interpreter.html
Hacking with strace on ls
$ls
1
$strace ls
execve("/bin/ls", ["ls"], [/* 38 vars */]) = 0
brk(0) = 0x7ae000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab18000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=136302, ...}) = 0
mmap(NULL, 136302, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb78aae8000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20c\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=142728, ...}) = 0
mmap(NULL, 2246896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a6c8000
mprotect(0x7fb78a6e9000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a8e9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21000) = 0x7fb78a8e9000
mmap(0x7fb78a8eb000, 6384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb78a8eb000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=35288, ...}) = 0
mmap(NULL, 2130592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a4b8000
mprotect(0x7fb78a4c0000, 2093056, PROT_NONE) = 0
mmap(0x7fb78a6bf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7fb78a6bf000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1729984, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab17000
mmap(NULL, 3836448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a108000
mprotect(0x7fb78a2a7000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a4a7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f000) = 0x7fb78a4a7000
mmap(0x7fb78a4ad000, 14880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb78a4ad000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\27\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=448440, ...}) = 0
mmap(NULL, 2543976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789e98000
mprotect(0x7fb789f04000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a104000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6c000) = 0x7fb78a104000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14664, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789c90000
mprotect(0x7fb789c93000, 2093056, PROT_NONE) = 0
mmap(0x7fb789e92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fb789e92000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=18640, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab16000
mmap(NULL, 2113912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789a88000
mprotect(0x7fb789a8c000, 2093056, PROT_NONE) = 0
mmap(0x7fb789c8b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fb789c8b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20o\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=137440, ...}) = 0
mmap(NULL, 2213008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789868000
mprotect(0x7fb789880000, 2093056, PROT_NONE) = 0
mmap(0x7fb789a7f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fb789a7f000
mmap(0x7fb789a81000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb789a81000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab15000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab13000
arch_prctl(ARCH_SET_FS, 0x7fb78ab13800) = 0
mprotect(0x7fb78a4a7000, 16384, PROT_READ) = 0
mprotect(0x7fb789a7f000, 4096, PROT_READ) = 0
mprotect(0x7fb789c8b000, 4096, PROT_READ) = 0
mprotect(0x7fb789e92000, 4096, PROT_READ) = 0
mprotect(0x7fb78a104000, 4096, PROT_READ) = 0
mprotect(0x7fb78a6bf000, 4096, PROT_READ) = 0
mprotect(0x7fb78a8e9000, 4096, PROT_READ) = 0
mprotect(0x61b000, 4096, PROT_READ) = 0
mprotect(0x7fb78ab10000, 4096, PROT_READ) = 0
munmap(0x7fb78aae8000, 136302) = 0
set_tid_address(0x7fb78ab13ad0) = 3887
set_robust_list(0x7fb78ab13ae0, 24) = 0
rt_sigaction(SIGRTMIN, {0x7fb78986e9f0, [], SA_RESTORER|SA_SIGINFO, 0x7fb7898778d0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7fb78986ea80, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fb7898778d0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
statfs("/sys/fs/selinux", 0x7fffb8555110) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7fffb8555110) = -1 ENOENT (No such file or directory)
brk(0) = 0x7ae000
brk(0x7cf000) = 0x7cf000
open("/proc/filesystems", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab0f000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 344
read(3, "", 1024) = 0
close(3) = 0
munmap(0x7fb78ab0f000, 4096) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1607936, ...}) = 0
mmap(NULL, 1607936, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb78a980000
close(3) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=40, ws_col=126, ws_xpixel=0, ws_ypixel=0}) = 0
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 3 entries */, 32768) = 72
getdents(3, /* 0 entries */, 32768) = 0
close(3) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab0f000
write(1, "1\n", 21
) = 2
close(1) = 0
munmap(0x7fb78ab0f000, 4096) = 0
close(2) = 0
exit_group(0) = ?
+++ exited with 0 +++
$
Examining an ELF binary with binutils
$strings a.out /lib64/ld-linux-x86-64.so.2 libc.so.6 printf __libc_start_main __gmon_start__ GLIBC_2.2.5 fffff. []A\A]A^A_ hello ;*3$" GCC: (Debian 4.9.2-10) 4.9.2 GCC: (Debian 4.8.3-13) 4.8.3 hello.c long unsigned int short unsigned int short int GNU C 4.9.2 -mtune=generic -march=x86-64 -g unsigned char long int sizetype main hello.c /home/jeffrin .symtab .strtab .shstrtab .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss .comment .debug_aranges .debug_info .debug_abbrev .debug_line .debug_str crtstuff.c __JCR_LIST__ deregister_tm_clones register_tm_clones __do_global_dtors_aux completed.6661 __do_global_dtors_aux_fini_array_entry frame_dummy __frame_dummy_init_array_entry hello.c __FRAME_END__ __JCR_END__ __init_array_end _DYNAMIC __init_array_start _GLOBAL_OFFSET_TABLE_ __libc_csu_fini _ITM_deregisterTMCloneTable data_start _edata _fini printf@@GLIBC_2.2.5 __libc_start_main@@GLIBC_2.2.5 __data_start __gmon_start__ __dso_handle _IO_stdin_used __libc_csu_init _end _start __bss_start main _Jv_RegisterClasses __TMC_END__ _ITM_registerTMCloneTable _init $
6 Framed photos was added to the collection
6 Framed photos was added to the collection 4 small ones and 2 relatively bigger ones All the photos are related to NATIONAL GEOGRAPHIC