.init:08048918 ; .init:08048918 ; +-------------------------------------------------------------------------+ .init:08048918 ; | This file has been generated by The Interactive Disassembler (IDA) | .init:08048918 ; | Copyright (c) 2015 Hex-Rays, <support@hex-rays.com> | .init:08048918 ; +-------------------------------------------------------------------------+ .init:08048918 ; .init:08048918 ; Input MD5 : A8DC6D4DD6EC93548382ED9CE333ABCB .init:08048918 ; Input CRC32 : E80369A7 .init:08048918 .init:08048918 ; File Name : sgstatd .init:08048918 ; Format : ELF for Intel 386 (Executable) .init:08048918 ; Imagebase : 8048000 .init:08048918 ; Interpreter '/lib/ld-linux.so.2' .init:08048918 ; Needed Library 'libc.so.6' .init:08048918 ; .init:08048918 ; Source File : 'crtstuff.c' .init:08048918 ; Source File : 'sgstatd.c' .init:08048918 ; Source File : 'sgnet.c' .init:08048918 ; Source File : 'crtstuff.c' .init:08048918 .init:08048918 .686p .init:08048918 .mmx .init:08048918 .model flat .init:08048918 .intel_syntax noprefix .init:08048918 .init:08048918 ; =========================================================================== .init:08048918 .init:08048918 ; Segment type: Pure code .init:08048918 ; Segment permissions: Read/Execute .init:08048918 _init segment dword public 'CODE' use32 .init:08048918 assume cs:_init .init:08048918 ;org 8048918h .init:08048918 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .init:08048918 .init:08048918 ; =============== S U B R O U T I N E ======================================= .init:08048918 .init:08048918 ; Attributes: bp-based frame .init:08048918 .init:08048918 public _init_proc .init:08048918 _init_proc proc near ; CODE XREF: __libc_csu_init+14p .init:08048918 55 push ebp ; _init .init:08048919 89 E5 mov ebp, esp .init:0804891B 53 push ebx .init:0804891C 83 EC 04 sub esp, 4 .init:0804891F E8 00 00 00 00 call $+5 .init:08048924 5B pop ebx .init:08048925 81 C3 E8 28 00 00 add ebx, 28E8h .init:0804892B 8B 93 FC FF FF FF mov edx, ds:(__gmon_start___ptr - 804B20Ch)[ebx] .init:08048931 85 D2 test edx, edx .init:08048933 74 05 jz short loc_804893A .init:08048935 E8 56 01 00 00 call ___gmon_start__ .init:0804893A .init:0804893A loc_804893A: ; CODE XREF: _init_proc+1Bj .init:0804893A 58 pop eax .init:0804893B 5B pop ebx .init:0804893C C9 leave .init:0804893D C3 retn .init:0804893D _init_proc endp .init:0804893D .init:0804893D _init ends .init:0804893D .plt:08048940 ; =========================================================================== .plt:08048940 .plt:08048940 ; Segment type: Pure code .plt:08048940 ; Segment permissions: Read/Execute .plt:08048940 _plt segment para public 'CODE' use32 .plt:08048940 assume cs:_plt .plt:08048940 ;org 8048940h .plt:08048940 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .plt:08048940 ?? ?? ?? ?? ?? ?? ?? ??+ dd 4 dup(?) .plt:08048950 ; [00000006 BYTES: COLLAPSED FUNCTION _setsockopt. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048956 ?? ?? dw ? .plt:08048958 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048960 ; [00000006 BYTES: COLLAPSED FUNCTION _getpwnam. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048966 ?? ?? dw ? .plt:08048968 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048970 ; [00000006 BYTES: COLLAPSED FUNCTION _dup2. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048976 ?? ?? dw ? .plt:08048978 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048980 ; [00000006 BYTES: COLLAPSED FUNCTION _strcmp. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048986 ?? ?? dw ? .plt:08048988 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048990 ; [00000006 BYTES: COLLAPSED FUNCTION _read. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048996 ?? ?? dw ? .plt:08048998 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489A0 ; [00000006 BYTES: COLLAPSED FUNCTION _fflush. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489A6 ?? ?? dw ? .plt:080489A8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489B0 ; [00000006 BYTES: COLLAPSED FUNCTION _free. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489B6 ?? ?? dw ? .plt:080489B8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489C0 ; [00000006 BYTES: COLLAPSED FUNCTION _fgets. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489C6 ?? ?? dw ? .plt:080489C8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489D0 ; [00000006 BYTES: COLLAPSED FUNCTION _time. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489D6 ?? ?? dw ? .plt:080489D8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489E0 ; [00000006 BYTES: COLLAPSED FUNCTION _signal. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489E6 ?? ?? dw ? .plt:080489E8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:080489F0 ; [00000006 BYTES: COLLAPSED FUNCTION _chdir. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:080489F6 ?? ?? dw ? .plt:080489F8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A00 ; [00000006 BYTES: COLLAPSED FUNCTION _alarm. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A06 ?? ?? dw ? .plt:08048A08 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A10 ; [00000006 BYTES: COLLAPSED FUNCTION _popen. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A16 ?? ?? dw ? .plt:08048A18 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A20 ; [00000006 BYTES: COLLAPSED FUNCTION _htons. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A26 ?? ?? dw ? .plt:08048A28 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A30 ; [00000006 BYTES: COLLAPSED FUNCTION _setgroups. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A36 ?? ?? dw ? .plt:08048A38 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A40 ; [00000006 BYTES: COLLAPSED FUNCTION _accept. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A46 ?? ?? dw ? .plt:08048A48 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A50 ; [00000006 BYTES: COLLAPSED FUNCTION _usleep. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A56 ?? ?? dw ? .plt:08048A58 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A60 ; [00000006 BYTES: COLLAPSED FUNCTION _setgid. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A66 ?? ?? dw ? .plt:08048A68 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A70 ; [00000006 BYTES: COLLAPSED FUNCTION _puts. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A76 ?? ?? dw ? .plt:08048A78 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A80 ; [00000006 BYTES: COLLAPSED FUNCTION _getdtablesize. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A86 ?? ?? dw ? .plt:08048A88 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048A90 ; [00000006 BYTES: COLLAPSED FUNCTION ___gmon_start__. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048A96 ?? ?? dw ? .plt:08048A98 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AA0 ; [00000006 BYTES: COLLAPSED FUNCTION _exit. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048AA6 ?? ?? dw ? .plt:08048AA8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AB0 .plt:08048AB0 ; =============== S U B R O U T I N E ======================================= .plt:08048AB0 .plt:08048AB0 ; Attributes: thunk .plt:08048AB0 .plt:08048AB0 ; int open(const char *file, int oflag, ...) .plt:08048AB0 _open proc near ; CODE XREF: sgnet_randfd+1Dp .plt:08048AB0 FF 25 70 B2 04 08 jmp ds:off_804B270 .plt:08048AB0 _open endp .plt:08048AB0 .plt:08048AB0 ; --------------------------------------------------------------------------- .plt:08048AB6 ?? ?? dw ? .plt:08048AB8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AC0 ; [00000006 BYTES: COLLAPSED FUNCTION _srand. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048AC6 ?? ?? dw ? .plt:08048AC8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AD0 ; [00000006 BYTES: COLLAPSED FUNCTION _strlen. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048AD6 ?? ?? dw ? .plt:08048AD8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AE0 ; [00000006 BYTES: COLLAPSED FUNCTION ___libc_start_main. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048AE6 ?? ?? dw ? .plt:08048AE8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048AF0 .plt:08048AF0 ; =============== S U B R O U T I N E ======================================= .plt:08048AF0 .plt:08048AF0 ; Attributes: thunk .plt:08048AF0 .plt:08048AF0 ; ssize_t write(int fd, const void *buf, size_t n) .plt:08048AF0 _write proc near ; CODE XREF: child_main+32p .plt:08048AF0 ; child_main+4Dp ... .plt:08048AF0 FF 25 80 B2 04 08 jmp ds:off_804B280 .plt:08048AF0 _write endp .plt:08048AF0 .plt:08048AF0 ; --------------------------------------------------------------------------- .plt:08048AF6 ?? ?? dw ? .plt:08048AF8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B00 ; [00000006 BYTES: COLLAPSED FUNCTION _vasprintf. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B06 ?? ?? dw ? .plt:08048B08 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B10 ; [00000006 BYTES: COLLAPSED FUNCTION _bind. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B16 ?? ?? dw ? .plt:08048B18 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B20 ; [00000006 BYTES: COLLAPSED FUNCTION _getifaddrs. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B26 ?? ?? dw ? .plt:08048B28 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B30 ; [00000006 BYTES: COLLAPSED FUNCTION _rand. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B36 ?? ?? dw ? .plt:08048B38 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B40 ; [00000006 BYTES: COLLAPSED FUNCTION _freeifaddrs. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B46 ?? ?? dw ? .plt:08048B48 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B50 .plt:08048B50 ; =============== S U B R O U T I N E ======================================= .plt:08048B50 .plt:08048B50 ; Attributes: thunk .plt:08048B50 .plt:08048B50 ; __pid_t fork(void) .plt:08048B50 _fork proc near ; CODE XREF: sgnet_server+4Dp .plt:08048B50 FF 25 98 B2 04 08 jmp ds:off_804B298 .plt:08048B50 _fork endp .plt:08048B50 .plt:08048B50 ; --------------------------------------------------------------------------- .plt:08048B56 ?? ?? dw ? .plt:08048B58 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B60 ; [00000006 BYTES: COLLAPSED FUNCTION _errx. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B66 ?? ?? dw ? .plt:08048B68 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B70 ; [00000006 BYTES: COLLAPSED FUNCTION _listen. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B76 ?? ?? dw ? .plt:08048B78 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B80 ; [00000006 BYTES: COLLAPSED FUNCTION _setuid. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B86 ?? ?? dw ? .plt:08048B88 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048B90 ; [00000006 BYTES: COLLAPSED FUNCTION _socket. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048B96 ?? ?? dw ? .plt:08048B98 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048BA0 ; [00000006 BYTES: COLLAPSED FUNCTION _shutdown. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048BA6 ?? ?? dw ? .plt:08048BA8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048BB0 ; [00000006 BYTES: COLLAPSED FUNCTION _recv. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048BB6 ?? ?? dw ? .plt:08048BB8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048BC0 ; [00000006 BYTES: COLLAPSED FUNCTION _close. PRESS CTRL-NUMPAD+ TO EXPAND] .plt:08048BC6 ?? ?? dw ? .plt:08048BC8 ?? ?? ?? ?? ?? ?? ?? ?? dd 2 dup(?) .plt:08048BC8 _plt ends .plt:08048BC8 .text:08048BD0 ; =========================================================================== .text:08048BD0 .text:08048BD0 ; Segment type: Pure code .text:08048BD0 ; Segment permissions: Read/Execute .text:08048BD0 _text segment para public 'CODE' use32 .text:08048BD0 assume cs:_text .text:08048BD0 ;org 8048BD0h .text:08048BD0 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .text:08048BD0 .text:08048BD0 ; =============== S U B R O U T I N E ======================================= .text:08048BD0 .text:08048BD0 ; Attributes: noreturn .text:08048BD0 .text:08048BD0 public _start .text:08048BD0 _start proc near .text:08048BD0 31 ED xor ebp, ebp .text:08048BD2 5E pop esi .text:08048BD3 89 E1 mov ecx, esp .text:08048BD5 83 E4 F0 and esp, 0FFFFFFF0h .text:08048BD8 50 push eax .text:08048BD9 54 push esp ; stack_end .text:08048BDA 52 push edx ; rtld_fini .text:08048BDB 68 20 9B 04 08 push offset __libc_csu_fini ; fini .text:08048BE0 68 30 9B 04 08 push offset __libc_csu_init ; init .text:08048BE5 51 push ecx ; ubp_av .text:08048BE6 56 push esi ; argc .text:08048BE7 68 C5 93 04 08 push offset main ; main .text:08048BEC E8 EF FE FF FF call ___libc_start_main .text:08048BF1 F4 hlt .text:08048BF1 _start endp .text:08048BF1 .text:08048BF1 ; --------------------------------------------------------------------------- .text:08048BF2 90 90 90 90 90 90 90 90+ align 10h .text:08048C00 .text:08048C00 ; =============== S U B R O U T I N E ======================================= .text:08048C00 .text:08048C00 .text:08048C00 deregister_tm_clones proc near ; CODE XREF: __do_global_dtors_aux+Fp .text:08048C00 .text:08048C00 var_1C = dword ptr -1Ch .text:08048C00 .text:08048C00 B8 C7 B2 04 08 mov eax, 804B2C7h .text:08048C05 2D C4 B2 04 08 sub eax, 804B2C4h .text:08048C0A 83 F8 06 cmp eax, 6 .text:08048C0D 77 02 ja short loc_8048C11 .text:08048C0F .text:08048C0F locret_8048C0F: ; CODE XREF: deregister_tm_clones+18j .text:08048C0F F3 C3 rep retn .text:08048C11 ; --------------------------------------------------------------------------- .text:08048C11 .text:08048C11 loc_8048C11: ; CODE XREF: deregister_tm_clones+Dj .text:08048C11 B8 00 00 00 00 mov eax, 0 .text:08048C16 85 C0 test eax, eax .text:08048C18 74 F5 jz short locret_8048C0F .text:08048C1A 55 push ebp .text:08048C1B 89 E5 mov ebp, esp .text:08048C1D 83 EC 18 sub esp, 18h .text:08048C20 C7 04 24 C4 B2 04 08 mov [esp+1Ch+var_1C], 804B2C4h .text:08048C27 FF D0 call eax .text:08048C29 C9 leave .text:08048C2A C3 retn .text:08048C2A deregister_tm_clones endp .text:08048C2A .text:08048C2A ; --------------------------------------------------------------------------- .text:08048C2B 90 8D 74 26 00 align 10h .text:08048C30 .text:08048C30 ; =============== S U B R O U T I N E ======================================= .text:08048C30 .text:08048C30 .text:08048C30 register_tm_clones proc near ; CODE XREF: frame_dummy+22j .text:08048C30 ; frame_dummy:loc_8048CB7j .text:08048C30 .text:08048C30 var_1C = dword ptr -1Ch .text:08048C30 var_18 = dword ptr -18h .text:08048C30 .text:08048C30 B8 C4 B2 04 08 mov eax, 804B2C4h .text:08048C35 2D C4 B2 04 08 sub eax, 804B2C4h .text:08048C3A C1 F8 02 sar eax, 2 .text:08048C3D 89 C2 mov edx, eax .text:08048C3F C1 EA 1F shr edx, 1Fh .text:08048C42 01 D0 add eax, edx .text:08048C44 D1 F8 sar eax, 1 .text:08048C46 75 02 jnz short loc_8048C4A .text:08048C48 .text:08048C48 locret_8048C48: ; CODE XREF: register_tm_clones+21j .text:08048C48 F3 C3 rep retn .text:08048C4A ; --------------------------------------------------------------------------- .text:08048C4A .text:08048C4A loc_8048C4A: ; CODE XREF: register_tm_clones+16j .text:08048C4A BA 00 00 00 00 mov edx, 0 .text:08048C4F 85 D2 test edx, edx .text:08048C51 74 F5 jz short locret_8048C48 .text:08048C53 55 push ebp .text:08048C54 89 E5 mov ebp, esp .text:08048C56 83 EC 18 sub esp, 18h .text:08048C59 89 44 24 04 mov [esp+1Ch+var_18], eax .text:08048C5D C7 04 24 C4 B2 04 08 mov [esp+1Ch+var_1C], 804B2C4h .text:08048C64 FF D2 call edx .text:08048C66 C9 leave .text:08048C67 C3 retn .text:08048C67 register_tm_clones endp .text:08048C67 .text:08048C67 ; --------------------------------------------------------------------------- .text:08048C68 90 8D B4 26 00 00 00 00 align 10h .text:08048C70 .text:08048C70 ; =============== S U B R O U T I N E ======================================= .text:08048C70 .text:08048C70 .text:08048C70 __do_global_dtors_aux proc near ; DATA XREF: .fini_array:__do_global_dtors_aux_fini_array_entryo .text:08048C70 80 3D 04 B3 04 08 00 cmp ds:completed_5730, 0 .text:08048C77 75 13 jnz short locret_8048C8C .text:08048C79 55 push ebp .text:08048C7A 89 E5 mov ebp, esp .text:08048C7C 83 EC 08 sub esp, 8 .text:08048C7F E8 7C FF FF FF call deregister_tm_clones .text:08048C84 C6 05 04 B3 04 08 01 mov ds:completed_5730, 1 .text:08048C8B C9 leave .text:08048C8C .text:08048C8C locret_8048C8C: ; CODE XREF: __do_global_dtors_aux+7j .text:08048C8C F3 C3 rep retn .text:08048C8C __do_global_dtors_aux endp .text:08048C8C .text:08048C8C ; --------------------------------------------------------------------------- .text:08048C8E 66 90 align 10h .text:08048C90 .text:08048C90 ; =============== S U B R O U T I N E ======================================= .text:08048C90 .text:08048C90 .text:08048C90 frame_dummy proc near ; CODE XREF: __libc_csu_init+44p .text:08048C90 ; DATA XREF: .init_array:__frame_dummy_init_array_entryo .text:08048C90 .text:08048C90 var_1C = dword ptr -1Ch .text:08048C90 .text:08048C90 A1 14 B1 04 08 mov eax, ds:__JCR_LIST__ .text:08048C95 85 C0 test eax, eax .text:08048C97 74 1E jz short loc_8048CB7 .text:08048C99 B8 00 00 00 00 mov eax, 0 .text:08048C9E 85 C0 test eax, eax .text:08048CA0 74 15 jz short loc_8048CB7 .text:08048CA2 55 push ebp .text:08048CA3 89 E5 mov ebp, esp .text:08048CA5 83 EC 18 sub esp, 18h .text:08048CA8 C7 04 24 14 B1 04 08 mov [esp+1Ch+var_1C], offset __JCR_LIST__ .text:08048CAF FF D0 call eax .text:08048CB1 C9 leave .text:08048CB2 E9 79 FF FF FF jmp register_tm_clones .text:08048CB7 ; --------------------------------------------------------------------------- .text:08048CB7 .text:08048CB7 loc_8048CB7: ; CODE XREF: frame_dummy+7j .text:08048CB7 ; frame_dummy+10j .text:08048CB7 E9 74 FF FF FF jmp register_tm_clones .text:08048CB7 frame_dummy endp .text:08048CB7 .text:08048CBC .text:08048CBC ; =============== S U B R O U T I N E ======================================= .text:08048CBC .text:08048CBC ; Attributes: bp-based frame .text:08048CBC .text:08048CBC ; int __cdecl child_main(int fd) .text:08048CBC public child_main .text:08048CBC child_main proc near ; DATA XREF: main+40o .text:08048CBC .text:08048CBC s = byte ptr -3F8h .text:08048CBC buf = dword ptr -10h .text:08048CBC stream = dword ptr -0Ch .text:08048CBC fd = dword ptr 8 .text:08048CBC .text:08048CBC 55 push ebp .text:08048CBD 89 E5 mov ebp, esp .text:08048CBF 81 EC 78 04 00 00 sub esp, 478h .text:08048CC5 C7 45 F0 00 00 00 00 mov [ebp+buf], 0 .text:08048CCC 8B 45 F0 mov eax, [ebp+buf] .text:08048CCF 83 F8 02 cmp eax, 2 .text:08048CD2 0F 84 60 06 00 00 jz loc_8049338 .text:08048CD8 C7 44 24 08 33 00 00 00 mov dword ptr [esp+8], 33h ; n .text:08048CE0 C7 44 24 04 BC 9B 04 08 mov dword ptr [esp+4], offset aWelcomeToTheSu ; "\nWelcome to the SuperGnome Server Stat"... .text:08048CE8 8B 45 08 mov eax, [ebp+fd] .text:08048CEB 89 04 24 mov [esp], eax ; fd .text:08048CEE E8 FD FD FF FF call _write .text:08048CF3 C7 44 24 08 2D 00 00 00 mov dword ptr [esp+8], 2Dh ; n .text:08048CFB C7 44 24 04 F0 9B 04 08 mov dword ptr [esp+4], offset aPleaseEnterOne ; "Please enter one of the following optio"... .text:08048D03 8B 45 08 mov eax, [ebp+fd] .text:08048D06 89 04 24 mov [esp], eax ; fd .text:08048D09 E8 E2 FD FF FF call _write .text:08048D0E C7 44 24 08 1C 00 00 00 mov dword ptr [esp+8], 1Ch ; n .text:08048D16 C7 44 24 04 1D 9C 04 08 mov dword ptr [esp+4], offset a1AnalyzeHardDi ; "1 - Analyze hard disk usage\n" .text:08048D1E 8B 45 08 mov eax, [ebp+fd] .text:08048D21 89 04 24 mov [esp], eax ; fd .text:08048D24 E8 C7 FD FF FF call _write .text:08048D29 C7 44 24 08 1A 00 00 00 mov dword ptr [esp+8], 1Ah ; n .text:08048D31 C7 44 24 04 3A 9C 04 08 mov dword ptr [esp+4], offset a2ListOpenTcpSo ; "2 - List open TCP sockets\n" .text:08048D39 8B 45 08 mov eax, [ebp+fd] .text:08048D3C 89 04 24 mov [esp], eax ; fd .text:08048D3F E8 AC FD FF FF call _write .text:08048D44 C7 44 24 08 1B 00 00 00 mov dword ptr [esp+8], 1Bh ; n .text:08048D4C C7 44 24 04 55 9C 04 08 mov dword ptr [esp+4], offset a3CheckLoggedIn ; "3 - Check logged in users\n" .text:08048D54 8B 45 08 mov eax, [ebp+fd] .text:08048D57 89 04 24 mov [esp], eax ; fd .text:08048D5A E8 91 FD FF FF call _write .text:08048D5F A1 00 B3 04 08 mov eax, ds:stdout@@GLIBC_2_0 .text:08048D64 89 04 24 mov [esp], eax ; stream .text:08048D67 E8 34 FC FF FF call _fflush .text:08048D6C C7 44 24 0C 00 00 00 00 mov dword ptr [esp+0Ch], 0 ; flags .text:08048D74 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048D7C 8D 45 F0 lea eax, [ebp+buf] .text:08048D7F 89 44 24 04 mov [esp+4], eax ; buf .text:08048D83 8B 45 08 mov eax, [ebp+fd] .text:08048D86 89 04 24 mov [esp], eax ; fd .text:08048D89 E8 22 FE FF FF call _recv .text:08048D8E 8B 45 F0 mov eax, [ebp+buf] .text:08048D91 83 F8 32 cmp eax, 32h .text:08048D94 0F 84 99 00 00 00 jz loc_8048E33 .text:08048D9A 83 F8 32 cmp eax, 32h .text:08048D9D 7F 0A jg short loc_8048DA9 .text:08048D9F 83 F8 31 cmp eax, 31h .text:08048DA2 74 1C jz short loc_8048DC0 .text:08048DA4 E9 60 05 00 00 jmp loc_8049309 .text:08048DA9 ; --------------------------------------------------------------------------- .text:08048DA9 .text:08048DA9 loc_8048DA9: ; CODE XREF: child_main+E1j .text:08048DA9 83 F8 33 cmp eax, 33h ; '3' .text:08048DAC 0F 84 F4 00 00 00 jz loc_8048EA6 .text:08048DB2 83 F8 58 cmp eax, 58h ; 'X' .text:08048DB5 0F 84 5E 01 00 00 jz loc_8048F19 .text:08048DBB E9 49 05 00 00 jmp loc_8049309 .text:08048DC0 ; --------------------------------------------------------------------------- .text:08048DC0 .text:08048DC0 loc_8048DC0: ; CODE XREF: child_main+E6j .text:08048DC0 C7 44 24 04 70 9C 04 08 mov dword ptr [esp+4], offset modes ; "r" .text:08048DC8 C7 04 24 72 9C 04 08 mov dword ptr [esp], offset command ; "/bin/df" .text:08048DCF E8 3C FC FF FF call _popen .text:08048DD4 89 45 F4 mov [ebp+stream], eax .text:08048DD7 83 7D F4 00 cmp [ebp+stream], 0 .text:08048DDB 75 2F jnz short loc_8048E0C .text:08048DDD C7 04 24 7A 9C 04 08 mov dword ptr [esp], offset s ; "Failed to run command" .text:08048DE4 E8 87 FC FF FF call _puts .text:08048DE9 C7 04 24 01 00 00 00 mov dword ptr [esp], 1 ; status .text:08048DF0 E8 AB FC FF FF call _exit .text:08048DF5 ; --------------------------------------------------------------------------- .text:08048DF5 .text:08048DF5 loc_8048DF5: ; CODE XREF: child_main+170j .text:08048DF5 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048DFB 89 44 24 04 mov [esp+4], eax ; s .text:08048DFF 8B 45 08 mov eax, [ebp+fd] .text:08048E02 89 04 24 mov [esp], eax ; fd .text:08048E05 E8 F5 0B 00 00 call sgnet_writes .text:08048E0A EB 01 jmp short loc_8048E0D .text:08048E0C ; --------------------------------------------------------------------------- .text:08048E0C .text:08048E0C loc_8048E0C: ; CODE XREF: child_main+11Fj .text:08048E0C 90 nop .text:08048E0D .text:08048E0D loc_8048E0D: ; CODE XREF: child_main+14Ej .text:08048E0D 8B 45 F4 mov eax, [ebp+stream] .text:08048E10 89 44 24 08 mov [esp+8], eax ; stream .text:08048E14 C7 44 24 04 E8 03 00 00 mov dword ptr [esp+4], 3E8h ; n .text:08048E1C 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048E22 89 04 24 mov [esp], eax ; s .text:08048E25 E8 96 FB FF FF call _fgets .text:08048E2A 85 C0 test eax, eax .text:08048E2C 75 C7 jnz short loc_8048DF5 .text:08048E2E E9 F2 04 00 00 jmp loc_8049325 .text:08048E33 ; --------------------------------------------------------------------------- .text:08048E33 .text:08048E33 loc_8048E33: ; CODE XREF: child_main+D8j .text:08048E33 C7 44 24 04 70 9C 04 08 mov dword ptr [esp+4], offset modes ; "r" .text:08048E3B C7 04 24 90 9C 04 08 mov dword ptr [esp], offset aBinNetstatTan ; "/bin/netstat -tan" .text:08048E42 E8 C9 FB FF FF call _popen .text:08048E47 89 45 F4 mov [ebp+stream], eax .text:08048E4A 83 7D F4 00 cmp [ebp+stream], 0 .text:08048E4E 75 2F jnz short loc_8048E7F .text:08048E50 C7 04 24 7A 9C 04 08 mov dword ptr [esp], offset s ; "Failed to run command" .text:08048E57 E8 14 FC FF FF call _puts .text:08048E5C C7 04 24 01 00 00 00 mov dword ptr [esp], 1 ; status .text:08048E63 E8 38 FC FF FF call _exit .text:08048E68 ; --------------------------------------------------------------------------- .text:08048E68 .text:08048E68 loc_8048E68: ; CODE XREF: child_main+1E3j .text:08048E68 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048E6E 89 44 24 04 mov [esp+4], eax ; s .text:08048E72 8B 45 08 mov eax, [ebp+fd] .text:08048E75 89 04 24 mov [esp], eax ; fd .text:08048E78 E8 82 0B 00 00 call sgnet_writes .text:08048E7D EB 01 jmp short loc_8048E80 .text:08048E7F ; --------------------------------------------------------------------------- .text:08048E7F .text:08048E7F loc_8048E7F: ; CODE XREF: child_main+192j .text:08048E7F 90 nop .text:08048E80 .text:08048E80 loc_8048E80: ; CODE XREF: child_main+1C1j .text:08048E80 8B 45 F4 mov eax, [ebp+stream] .text:08048E83 89 44 24 08 mov [esp+8], eax ; stream .text:08048E87 C7 44 24 04 E7 03 00 00 mov dword ptr [esp+4], 3E7h ; n .text:08048E8F 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048E95 89 04 24 mov [esp], eax ; s .text:08048E98 E8 23 FB FF FF call _fgets .text:08048E9D 85 C0 test eax, eax .text:08048E9F 75 C7 jnz short loc_8048E68 .text:08048EA1 E9 7F 04 00 00 jmp loc_8049325 .text:08048EA6 ; --------------------------------------------------------------------------- .text:08048EA6 .text:08048EA6 loc_8048EA6: ; CODE XREF: child_main+F0j .text:08048EA6 C7 44 24 04 70 9C 04 08 mov dword ptr [esp+4], offset modes ; "r" .text:08048EAE C7 04 24 A2 9C 04 08 mov dword ptr [esp], offset aUsrBinWho ; "/usr/bin/who" .text:08048EB5 E8 56 FB FF FF call _popen .text:08048EBA 89 45 F4 mov [ebp+stream], eax .text:08048EBD 83 7D F4 00 cmp [ebp+stream], 0 .text:08048EC1 75 2F jnz short loc_8048EF2 .text:08048EC3 C7 04 24 7A 9C 04 08 mov dword ptr [esp], offset s ; "Failed to run command" .text:08048ECA E8 A1 FB FF FF call _puts .text:08048ECF C7 04 24 01 00 00 00 mov dword ptr [esp], 1 ; status .text:08048ED6 E8 C5 FB FF FF call _exit .text:08048EDB ; --------------------------------------------------------------------------- .text:08048EDB .text:08048EDB loc_8048EDB: ; CODE XREF: child_main+256j .text:08048EDB 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048EE1 89 44 24 04 mov [esp+4], eax ; s .text:08048EE5 8B 45 08 mov eax, [ebp+fd] .text:08048EE8 89 04 24 mov [esp], eax ; fd .text:08048EEB E8 0F 0B 00 00 call sgnet_writes .text:08048EF0 EB 01 jmp short loc_8048EF3 .text:08048EF2 ; --------------------------------------------------------------------------- .text:08048EF2 .text:08048EF2 loc_8048EF2: ; CODE XREF: child_main+205j .text:08048EF2 90 nop .text:08048EF3 .text:08048EF3 loc_8048EF3: ; CODE XREF: child_main+234j .text:08048EF3 8B 45 F4 mov eax, [ebp+stream] .text:08048EF6 89 44 24 08 mov [esp+8], eax ; stream .text:08048EFA C7 44 24 04 E7 03 00 00 mov dword ptr [esp+4], 3E7h ; n .text:08048F02 8D 85 08 FC FF FF lea eax, [ebp+s] .text:08048F08 89 04 24 mov [esp], eax ; s .text:08048F0B E8 B0 FA FF FF call _fgets .text:08048F10 85 C0 test eax, eax .text:08048F12 75 C7 jnz short loc_8048EDB .text:08048F14 E9 0C 04 00 00 jmp loc_8049325 .text:08048F19 ; --------------------------------------------------------------------------- .text:08048F19 .text:08048F19 loc_8048F19: ; CODE XREF: child_main+F9j .text:08048F19 C7 44 24 08 04 00 00 00 mov dword ptr [esp+8], 4 ; n .text:08048F21 C7 44 24 04 AF 9C 04 08 mov dword ptr [esp+4], offset asc_8049CAF ; "\n\nH" .text:08048F29 8B 45 08 mov eax, [ebp+fd] .text:08048F2C 89 04 24 mov [esp], eax ; fd .text:08048F2F E8 BC FB FF FF call _write .text:08048F34 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048F3B E8 10 FB FF FF call _usleep .text:08048F40 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048F48 C7 44 24 04 B3 9C 04 08 mov dword ptr [esp+4], offset aI ; "i" .text:08048F50 8B 45 08 mov eax, [ebp+fd] .text:08048F53 89 04 24 mov [esp], eax ; fd .text:08048F56 E8 95 FB FF FF call _write .text:08048F5B C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048F62 E8 E9 FA FF FF call _usleep .text:08048F67 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048F6F C7 44 24 04 B5 9C 04 08 mov dword ptr [esp+4], offset aD ; "d" .text:08048F77 8B 45 08 mov eax, [ebp+fd] .text:08048F7A 89 04 24 mov [esp], eax ; fd .text:08048F7D E8 6E FB FF FF call _write .text:08048F82 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048F89 E8 C2 FA FF FF call _usleep .text:08048F8E C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048F96 C7 44 24 04 B5 9C 04 08 mov dword ptr [esp+4], offset aD ; "d" .text:08048F9E 8B 45 08 mov eax, [ebp+fd] .text:08048FA1 89 04 24 mov [esp], eax ; fd .text:08048FA4 E8 47 FB FF FF call _write .text:08048FA9 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048FB0 E8 9B FA FF FF call _usleep .text:08048FB5 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048FBD C7 44 24 04 B7 9C 04 08 mov dword ptr [esp+4], offset aE ; "e" .text:08048FC5 8B 45 08 mov eax, [ebp+fd] .text:08048FC8 89 04 24 mov [esp], eax ; fd .text:08048FCB E8 20 FB FF FF call _write .text:08048FD0 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048FD7 E8 74 FA FF FF call _usleep .text:08048FDC C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08048FE4 C7 44 24 04 B9 9C 04 08 mov dword ptr [esp+4], offset aN ; "n" .text:08048FEC 8B 45 08 mov eax, [ebp+fd] .text:08048FEF 89 04 24 mov [esp], eax ; fd .text:08048FF2 E8 F9 FA FF FF call _write .text:08048FF7 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08048FFE E8 4D FA FF FF call _usleep .text:08049003 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:0804900B C7 44 24 04 BB 9C 04 08 mov dword ptr [esp+4], offset asc_8049CBB ; " " .text:08049013 8B 45 08 mov eax, [ebp+fd] .text:08049016 89 04 24 mov [esp], eax ; fd .text:08049019 E8 D2 FA FF FF call _write .text:0804901E C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049025 E8 26 FA FF FF call _usleep .text:0804902A C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049032 C7 44 24 04 BD 9C 04 08 mov dword ptr [esp+4], offset aC ; "c" .text:0804903A 8B 45 08 mov eax, [ebp+fd] .text:0804903D 89 04 24 mov [esp], eax ; fd .text:08049040 E8 AB FA FF FF call _write .text:08049045 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:0804904C E8 FF F9 FF FF call _usleep .text:08049051 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049059 C7 44 24 04 BF 9C 04 08 mov dword ptr [esp+4], offset aO ; "o" .text:08049061 8B 45 08 mov eax, [ebp+fd] .text:08049064 89 04 24 mov [esp], eax ; fd .text:08049067 E8 84 FA FF FF call _write .text:0804906C C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049073 E8 D8 F9 FF FF call _usleep .text:08049078 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049080 C7 44 24 04 C1 9C 04 08 mov dword ptr [esp+4], offset aM ; "m" .text:08049088 8B 45 08 mov eax, [ebp+fd] .text:0804908B 89 04 24 mov [esp], eax ; fd .text:0804908E E8 5D FA FF FF call _write .text:08049093 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:0804909A E8 B1 F9 FF FF call _usleep .text:0804909F C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:080490A7 C7 44 24 04 C1 9C 04 08 mov dword ptr [esp+4], offset aM ; "m" .text:080490AF 8B 45 08 mov eax, [ebp+fd] .text:080490B2 89 04 24 mov [esp], eax ; fd .text:080490B5 E8 36 FA FF FF call _write .text:080490BA C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080490C1 E8 8A F9 FF FF call _usleep .text:080490C6 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:080490CE C7 44 24 04 C3 9C 04 08 mov dword ptr [esp+4], offset aA ; "a" .text:080490D6 8B 45 08 mov eax, [ebp+fd] .text:080490D9 89 04 24 mov [esp], eax ; fd .text:080490DC E8 0F FA FF FF call _write .text:080490E1 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080490E8 E8 63 F9 FF FF call _usleep .text:080490ED C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:080490F5 C7 44 24 04 B9 9C 04 08 mov dword ptr [esp+4], offset aN ; "n" .text:080490FD 8B 45 08 mov eax, [ebp+fd] .text:08049100 89 04 24 mov [esp], eax ; fd .text:08049103 E8 E8 F9 FF FF call _write .text:08049108 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:0804910F E8 3C F9 FF FF call _usleep .text:08049114 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:0804911C C7 44 24 04 B5 9C 04 08 mov dword ptr [esp+4], offset aD ; "d" .text:08049124 8B 45 08 mov eax, [ebp+fd] .text:08049127 89 04 24 mov [esp], eax ; fd .text:0804912A E8 C1 F9 FF FF call _write .text:0804912F C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049136 E8 15 F9 FF FF call _usleep .text:0804913B C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049143 C7 44 24 04 BB 9C 04 08 mov dword ptr [esp+4], offset asc_8049CBB ; " " .text:0804914B 8B 45 08 mov eax, [ebp+fd] .text:0804914E 89 04 24 mov [esp], eax ; fd .text:08049151 E8 9A F9 FF FF call _write .text:08049156 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:0804915D E8 EE F8 FF FF call _usleep .text:08049162 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:0804916A C7 44 24 04 B5 9C 04 08 mov dword ptr [esp+4], offset aD ; "d" .text:08049172 8B 45 08 mov eax, [ebp+fd] .text:08049175 89 04 24 mov [esp], eax ; fd .text:08049178 E8 73 F9 FF FF call _write .text:0804917D C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049184 E8 C7 F8 FF FF call _usleep .text:08049189 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049191 C7 44 24 04 B7 9C 04 08 mov dword ptr [esp+4], offset aE ; "e" .text:08049199 8B 45 08 mov eax, [ebp+fd] .text:0804919C 89 04 24 mov [esp], eax ; fd .text:0804919F E8 4C F9 FF FF call _write .text:080491A4 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080491AB E8 A0 F8 FF FF call _usleep .text:080491B0 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:080491B8 C7 44 24 04 C5 9C 04 08 mov dword ptr [esp+4], offset aT ; "t" .text:080491C0 8B 45 08 mov eax, [ebp+fd] .text:080491C3 89 04 24 mov [esp], eax ; fd .text:080491C6 E8 25 F9 FF FF call _write .text:080491CB C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080491D2 E8 79 F8 FF FF call _usleep .text:080491D7 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:080491DF C7 44 24 04 B7 9C 04 08 mov dword ptr [esp+4], offset aE ; "e" .text:080491E7 8B 45 08 mov eax, [ebp+fd] .text:080491EA 89 04 24 mov [esp], eax ; fd .text:080491ED E8 FE F8 FF FF call _write .text:080491F2 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080491F9 E8 52 F8 FF FF call _usleep .text:080491FE C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049206 C7 44 24 04 BD 9C 04 08 mov dword ptr [esp+4], offset aC ; "c" .text:0804920E 8B 45 08 mov eax, [ebp+fd] .text:08049211 89 04 24 mov [esp], eax ; fd .text:08049214 E8 D7 F8 FF FF call _write .text:08049219 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049220 E8 2B F8 FF FF call _usleep .text:08049225 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:0804922D C7 44 24 04 C5 9C 04 08 mov dword ptr [esp+4], offset aT ; "t" .text:08049235 8B 45 08 mov eax, [ebp+fd] .text:08049238 89 04 24 mov [esp], eax ; fd .text:0804923B E8 B0 F8 FF FF call _write .text:08049240 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049247 E8 04 F8 FF FF call _usleep .text:0804924C C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:08049254 C7 44 24 04 B7 9C 04 08 mov dword ptr [esp+4], offset aE ; "e" .text:0804925C 8B 45 08 mov eax, [ebp+fd] .text:0804925F 89 04 24 mov [esp], eax ; fd .text:08049262 E8 89 F8 FF FF call _write .text:08049267 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:0804926E E8 DD F7 FF FF call _usleep .text:08049273 C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; n .text:0804927B C7 44 24 04 B5 9C 04 08 mov dword ptr [esp+4], offset aD ; "d" .text:08049283 8B 45 08 mov eax, [ebp+fd] .text:08049286 89 04 24 mov [esp], eax ; fd .text:08049289 E8 62 F8 FF FF call _write .text:0804928E C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:08049295 E8 B6 F7 FF FF call _usleep .text:0804929A C7 44 24 08 04 00 00 00 mov dword ptr [esp+8], 4 ; n .text:080492A2 C7 44 24 04 C7 9C 04 08 mov dword ptr [esp+4], offset asc_8049CC7 ; "!\n\n" .text:080492AA 8B 45 08 mov eax, [ebp+fd] .text:080492AD 89 04 24 mov [esp], eax ; fd .text:080492B0 E8 3B F8 FF FF call _write .text:080492B5 C7 04 24 60 EA 00 00 mov dword ptr [esp], 0EA60h ; useconds .text:080492BC E8 8F F7 FF FF call _usleep .text:080492C1 C7 44 24 08 4B 00 00 00 mov dword ptr [esp+8], 4Bh ; n .text:080492C9 C7 44 24 04 CC 9C 04 08 mov dword ptr [esp+4], offset aEnterAShortMes ; "Enter a short message to share with Gno"... .text:080492D1 8B 45 08 mov eax, [ebp+fd] .text:080492D4 89 04 24 mov [esp], eax ; fd .text:080492D7 E8 14 F8 FF FF call _write .text:080492DC A1 E0 B2 04 08 mov eax, ds:stdin@@GLIBC_2_0 .text:080492E1 89 04 24 mov [esp], eax ; stream .text:080492E4 E8 B7 F6 FF FF call _fflush .text:080492E9 8B 45 08 mov eax, [ebp+fd] .text:080492EC 89 04 24 mov [esp], eax ; fd .text:080492EF E8 69 00 00 00 call sgstatd .text:080492F4 C7 44 24 04 17 9D 04 08 mov dword ptr [esp+4], offset aRequestComplet ; "\nRequest Completed!\n\n" .text:080492FC 8B 45 08 mov eax, [ebp+fd] .text:080492FF 89 04 24 mov [esp], eax ; fd .text:08049302 E8 F8 06 00 00 call sgnet_writes .text:08049307 EB 1C jmp short loc_8049325 .text:08049309 ; --------------------------------------------------------------------------- .text:08049309 .text:08049309 loc_8049309: ; CODE XREF: child_main+E8j .text:08049309 ; child_main+FFj .text:08049309 C7 44 24 08 11 00 00 00 mov dword ptr [esp+8], 11h ; n .text:08049311 C7 44 24 04 2D 9D 04 08 mov dword ptr [esp+4], offset aInvalidChoice ; "Invalid choice!\n" .text:08049319 8B 45 08 mov eax, [ebp+fd] .text:0804931C 89 04 24 mov [esp], eax ; fd .text:0804931F E8 CC F7 FF FF call _write .text:08049324 90 nop .text:08049325 .text:08049325 loc_8049325: ; CODE XREF: child_main+172j .text:08049325 ; child_main+1E5j ... .text:08049325 C7 44 24 04 01 00 00 00 mov dword ptr [esp+4], 1 ; how .text:0804932D 8B 45 08 mov eax, [ebp+fd] .text:08049330 89 04 24 mov [esp], eax ; fd .text:08049333 E8 68 F8 FF FF call _shutdown .text:08049338 .text:08049338 loc_8049338: ; CODE XREF: child_main+16j .text:08049338 B8 00 00 00 00 mov eax, 0 .text:0804933D C9 leave .text:0804933E C3 retn .text:0804933E child_main endp .text:0804933E .text:0804933F .text:0804933F ; =============== S U B R O U T I N E ======================================= .text:0804933F .text:0804933F ; Attributes: noreturn bp-based frame .text:0804933F .text:0804933F public sgnet_exit .text:0804933F sgnet_exit proc near ; CODE XREF: sgstatd+5Bj .text:0804933F 55 push ebp .text:08049340 89 E5 mov ebp, esp .text:08049342 83 EC 18 sub esp, 18h .text:08049345 C7 04 24 3E 9D 04 08 mov dword ptr [esp], offset aCanaryNotRepai ; "Canary not repaired." .text:0804934C E8 1F F7 FF FF call _puts .text:08049351 C7 04 24 00 00 00 00 mov dword ptr [esp], 0 ; status .text:08049358 E8 43 F7 FF FF call _exit .text:08049358 sgnet_exit endp .text:08049358 .text:0804935D .text:0804935D ; =============== S U B R O U T I N E ======================================= .text:0804935D .text:0804935D ; Attributes: bp-based frame .text:0804935D .text:0804935D ; int __cdecl sgstatd(int fd) .text:0804935D public sgstatd .text:0804935D sgstatd proc near ; CODE XREF: child_main+633p .text:0804935D .text:0804935D var_6C = dword ptr -6Ch .text:0804935D var_4 = dword ptr -4 .text:0804935D fd = dword ptr 8 .text:0804935D .text:0804935D 55 push ebp .text:0804935E 89 E5 mov ebp, esp .text:08049360 81 EC 88 00 00 00 sub esp, 88h .text:08049366 C7 45 FC E4 FF FF E4 mov [ebp+var_4], 0E4FFFFE4h .text:0804936D C7 44 24 08 1E 00 00 00 mov dword ptr [esp+8], 1Eh ; n .text:08049375 C7 44 24 04 53 9D 04 08 mov dword ptr [esp+4], offset aThisFunctionIs ; "\nThis function is protected!\n" .text:0804937D 8B 45 08 mov eax, [ebp+fd] .text:08049380 89 04 24 mov [esp], eax ; fd .text:08049383 E8 68 F7 FF FF call _write .text:08049388 A1 E0 B2 04 08 mov eax, ds:stdin@@GLIBC_2_0 .text:0804938D 89 04 24 mov [esp], eax ; stream .text:08049390 E8 0B F6 FF FF call _fflush .text:08049395 C7 44 24 08 C8 00 00 00 mov dword ptr [esp+8], 0C8h ; int .text:0804939D 8D 45 94 lea eax, [ebp+var_6C] .text:080493A0 89 44 24 04 mov [esp+4], eax ; int .text:080493A4 8B 45 08 mov eax, [ebp+fd] .text:080493A7 89 04 24 mov [esp], eax ; fd .text:080493AA E8 5C 05 00 00 call sgnet_readn .text:080493AF 8B 55 FC mov edx, [ebp+var_4] .text:080493B2 81 F2 E4 FF FF E4 xor edx, 0E4FFFFE4h .text:080493B8 0F 85 81 FF FF FF jnz sgnet_exit .text:080493BE B8 00 00 00 00 mov eax, 0 .text:080493C3 C9 leave .text:080493C4 C3 retn .text:080493C4 sgstatd endp .text:080493C4 .text:080493C5 .text:080493C5 ; =============== S U B R O U T I N E ======================================= .text:080493C5 .text:080493C5 ; Attributes: noreturn bp-based frame .text:080493C5 .text:080493C5 ; int __cdecl main(int argc, const char **argv, const char **envp) .text:080493C5 public main .text:080493C5 main proc near ; DATA XREF: _start+17o .text:080493C5 .text:080493C5 argc = dword ptr 8 .text:080493C5 argv = dword ptr 0Ch .text:080493C5 envp = dword ptr 10h .text:080493C5 .text:080493C5 55 push ebp .text:080493C6 89 E5 mov ebp, esp .text:080493C8 83 E4 F0 and esp, 0FFFFFFF0h .text:080493CB 83 EC 20 sub esp, 20h .text:080493CE C7 04 24 71 9D 04 08 mov dword ptr [esp], offset aServerStarted_ ; "Server started..." .text:080493D5 E8 96 F6 FF FF call _puts .text:080493DA 0F B7 05 B8 9B 04 08 movzx eax, ds:PORT .text:080493E1 0F B7 C0 movzx eax, ax .text:080493E4 C7 44 24 08 00 00 00 00 mov dword ptr [esp+8], 0 ; s2 .text:080493EC C7 44 24 04 06 00 00 00 mov dword ptr [esp+4], 6 ; protocol .text:080493F4 89 04 24 mov [esp], eax ; int .text:080493F7 E8 24 00 00 00 call sgnet_listen .text:080493FC 89 44 24 1C mov [esp+1Ch], eax .text:08049400 A1 C0 B2 04 08 mov eax, USER .text:08049405 C7 44 24 08 BC 8C 04 08 mov dword ptr [esp+8], offset child_main ; int .text:0804940D 89 44 24 04 mov [esp+4], eax ; name .text:08049411 8B 44 24 1C mov eax, [esp+1Ch] .text:08049415 89 04 24 mov [esp], eax ; fd .text:08049418 E8 A6 02 00 00 call sgnet_server .text:08049418 main endp .text:08049418 .text:08049418 ; --------------------------------------------------------------------------- .text:0804941D 90 90 90 align 10h .text:08049420 .text:08049420 ; =============== S U B R O U T I N E ======================================= .text:08049420 .text:08049420 ; Attributes: bp-based frame .text:08049420 .text:08049420 ; int __cdecl sgnet_listen(int, int protocol, char *s2) .text:08049420 public sgnet_listen .text:08049420 sgnet_listen proc near ; CODE XREF: main+32p .text:08049420 .text:08049420 var_3C = word ptr -3Ch .text:08049420 optval = dword ptr -2Ch .text:08049420 ifap = dword ptr -28h .text:08049420 addr = sockaddr ptr -24h .text:08049420 var_14 = dword ptr -14h .text:08049420 var_10 = dword ptr -10h .text:08049420 fd = dword ptr -0Ch .text:08049420 arg_0 = dword ptr 8 .text:08049420 protocol = dword ptr 0Ch .text:08049420 s2 = dword ptr 10h .text:08049420 .text:08049420 55 push ebp .text:08049421 89 E5 mov ebp, esp .text:08049423 83 EC 68 sub esp, 68h .text:08049426 8B 45 08 mov eax, [ebp+arg_0] .text:08049429 66 89 45 C4 mov [ebp+var_3C], ax .text:0804942D C7 45 F4 FF FF FF FF mov [ebp+fd], 0FFFFFFFFh .text:08049434 C7 44 24 04 01 00 00 00 mov dword ptr [esp+4], 1 ; handler .text:0804943C C7 04 24 11 00 00 00 mov dword ptr [esp], 11h ; sig .text:08049443 E8 98 F5 FF FF call _signal .text:08049448 83 F8 FF cmp eax, 0FFFFFFFFh .text:0804944B 75 14 jnz short loc_8049461 .text:0804944D C7 44 24 04 88 9D 04 08 mov dword ptr [esp+4], offset format ; "Unable to set SIGCHLD handler" .text:08049455 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:0804945C E8 FF F6 FF FF call _errx .text:08049461 ; --------------------------------------------------------------------------- .text:08049461 .text:08049461 loc_8049461: ; CODE XREF: sgnet_listen+2Bj .text:08049461 81 7D 0C FF 00 00 00 cmp [ebp+protocol], 0FFh .text:08049468 75 21 jnz short loc_804948B .text:0804946A A1 84 9D 04 08 mov eax, ds:domain .text:0804946F 8B 55 0C mov edx, [ebp+protocol] .text:08049472 89 54 24 08 mov [esp+8], edx ; protocol .text:08049476 C7 44 24 04 03 00 00 00 mov dword ptr [esp+4], 3 ; type .text:0804947E 89 04 24 mov [esp], eax ; domain .text:08049481 E8 0A F7 FF FF call _socket .text:08049486 89 45 F4 mov [ebp+fd], eax .text:08049489 EB 76 jmp short loc_8049501 .text:0804948B ; --------------------------------------------------------------------------- .text:0804948B .text:0804948B loc_804948B: ; CODE XREF: sgnet_listen+48j .text:0804948B 81 7D 0C 84 00 00 00 cmp [ebp+protocol], 84h .text:08049492 75 21 jnz short loc_80494B5 .text:08049494 A1 84 9D 04 08 mov eax, ds:domain .text:08049499 8B 55 0C mov edx, [ebp+protocol] .text:0804949C 89 54 24 08 mov [esp+8], edx ; protocol .text:080494A0 C7 44 24 04 05 00 00 00 mov dword ptr [esp+4], 5 ; type .text:080494A8 89 04 24 mov [esp], eax ; domain .text:080494AB E8 E0 F6 FF FF call _socket .text:080494B0 89 45 F4 mov [ebp+fd], eax .text:080494B3 EB 4C jmp short loc_8049501 .text:080494B5 ; --------------------------------------------------------------------------- .text:080494B5 .text:080494B5 loc_80494B5: ; CODE XREF: sgnet_listen+72j .text:080494B5 83 7D 0C 11 cmp [ebp+protocol], 11h .text:080494B9 75 21 jnz short loc_80494DC .text:080494BB A1 84 9D 04 08 mov eax, ds:domain .text:080494C0 8B 55 0C mov edx, [ebp+protocol] .text:080494C3 89 54 24 08 mov [esp+8], edx ; protocol .text:080494C7 C7 44 24 04 02 00 00 00 mov dword ptr [esp+4], 2 ; type .text:080494CF 89 04 24 mov [esp], eax ; domain .text:080494D2 E8 B9 F6 FF FF call _socket .text:080494D7 89 45 F4 mov [ebp+fd], eax .text:080494DA EB 25 jmp short loc_8049501 .text:080494DC ; --------------------------------------------------------------------------- .text:080494DC .text:080494DC loc_80494DC: ; CODE XREF: sgnet_listen+99j .text:080494DC 83 7D 0C 06 cmp [ebp+protocol], 6 .text:080494E0 75 1F jnz short loc_8049501 .text:080494E2 A1 84 9D 04 08 mov eax, ds:domain .text:080494E7 8B 55 0C mov edx, [ebp+protocol] .text:080494EA 89 54 24 08 mov [esp+8], edx ; protocol .text:080494EE C7 44 24 04 01 00 00 00 mov dword ptr [esp+4], 1 ; type .text:080494F6 89 04 24 mov [esp], eax ; domain .text:080494F9 E8 92 F6 FF FF call _socket .text:080494FE 89 45 F4 mov [ebp+fd], eax .text:08049501 .text:08049501 loc_8049501: ; CODE XREF: sgnet_listen+69j .text:08049501 ; sgnet_listen+93j ... .text:08049501 83 7D F4 00 cmp [ebp+fd], 0 .text:08049505 79 14 jns short loc_804951B .text:08049507 C7 44 24 04 A6 9D 04 08 mov dword ptr [esp+4], offset aUnableToCreate ; "Unable to create socket" .text:0804950F C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:08049516 E8 45 F6 FF FF call _errx .text:0804951B ; --------------------------------------------------------------------------- .text:0804951B .text:0804951B loc_804951B: ; CODE XREF: sgnet_listen+E5j .text:0804951B C7 45 D4 01 00 00 00 mov [ebp+optval], 1 .text:08049522 C7 44 24 10 04 00 00 00 mov dword ptr [esp+10h], 4 ; optlen .text:0804952A 8D 45 D4 lea eax, [ebp+optval] .text:0804952D 89 44 24 0C mov [esp+0Ch], eax ; optval .text:08049531 C7 44 24 08 02 00 00 00 mov dword ptr [esp+8], 2 ; optname .text:08049539 C7 44 24 04 01 00 00 00 mov dword ptr [esp+4], 1 ; level .text:08049541 8B 45 F4 mov eax, [ebp+fd] .text:08049544 89 04 24 mov [esp], eax ; fd .text:08049547 E8 04 F4 FF FF call _setsockopt .text:0804954C 83 F8 FF cmp eax, 0FFFFFFFFh .text:0804954F 75 14 jnz short loc_8049565 .text:08049551 C7 44 24 04 C0 9D 04 08 mov dword ptr [esp+4], offset aUnableToSetSoc ; "Unable to set socket reuse option" .text:08049559 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:08049560 E8 FB F5 FF FF call _errx .text:08049565 ; --------------------------------------------------------------------------- .text:08049565 .text:08049565 loc_8049565: ; CODE XREF: sgnet_listen+12Fj .text:08049565 83 7D 10 00 cmp [ebp+s2], 0 .text:08049569 75 56 jnz short loc_80495C1 .text:0804956B A1 84 9D 04 08 mov eax, ds:domain .text:08049570 66 89 45 DC mov [ebp+addr.sa_family], ax .text:08049574 0F B7 45 C4 movzx eax, [ebp+var_3C] .text:08049578 89 04 24 mov [esp], eax ; hostshort .text:0804957B E8 A0 F4 FF FF call _htons .text:08049580 66 89 45 DE mov word ptr [ebp+addr.sa_data], ax .text:08049584 C7 45 E0 00 00 00 00 mov dword ptr [ebp+addr.sa_data+2], 0 .text:0804958B 8D 45 DC lea eax, [ebp+addr] .text:0804958E C7 44 24 08 10 00 00 00 mov dword ptr [esp+8], 10h ; len .text:08049596 89 44 24 04 mov [esp+4], eax ; addr .text:0804959A 8B 45 F4 mov eax, [ebp+fd] .text:0804959D 89 04 24 mov [esp], eax ; fd .text:080495A0 E8 6B F5 FF FF call _bind .text:080495A5 85 C0 test eax, eax .text:080495A7 0F 89 D6 00 00 00 jns loc_8049683 .text:080495AD C7 44 24 04 E2 9D 04 08 mov dword ptr [esp+4], offset aUnableToBindSo ; "Unable to bind socket" .text:080495B5 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:080495BC E8 9F F5 FF FF call _errx .text:080495C1 ; --------------------------------------------------------------------------- .text:080495C1 .text:080495C1 loc_80495C1: ; CODE XREF: sgnet_listen+149j .text:080495C1 C7 45 D4 FF FF FF FF mov [ebp+optval], 0FFFFFFFFh .text:080495C8 8D 45 D8 lea eax, [ebp+ifap] .text:080495CB 89 04 24 mov [esp], eax ; ifap .text:080495CE E8 4D F5 FF FF call _getifaddrs .text:080495D3 85 C0 test eax, eax .text:080495D5 0F 85 82 00 00 00 jnz loc_804965D .text:080495DB 8B 45 D8 mov eax, [ebp+ifap] .text:080495DE 89 45 F0 mov [ebp+var_10], eax .text:080495E1 EB 74 jmp short loc_8049657 .text:080495E3 ; --------------------------------------------------------------------------- .text:080495E3 .text:080495E3 loc_80495E3: ; CODE XREF: sgnet_listen+23Bj .text:080495E3 8B 45 F0 mov eax, [ebp+var_10] .text:080495E6 8B 40 0C mov eax, [eax+0Ch] .text:080495E9 0F B7 00 movzx eax, word ptr [eax] .text:080495EC 0F B7 D0 movzx edx, ax .text:080495EF A1 84 9D 04 08 mov eax, ds:domain .text:080495F4 39 C2 cmp edx, eax .text:080495F6 75 57 jnz short loc_804964F .text:080495F8 8B 45 F0 mov eax, [ebp+var_10] .text:080495FB 8B 40 04 mov eax, [eax+4] .text:080495FE 8B 55 10 mov edx, [ebp+s2] .text:08049601 89 54 24 04 mov [esp+4], edx ; s2 .text:08049605 89 04 24 mov [esp], eax ; s1 .text:08049608 E8 73 F3 FF FF call _strcmp .text:0804960D 85 C0 test eax, eax .text:0804960F 75 3E jnz short loc_804964F .text:08049611 8B 45 F0 mov eax, [ebp+var_10] .text:08049614 8B 40 0C mov eax, [eax+0Ch] .text:08049617 89 45 EC mov [ebp+var_14], eax .text:0804961A 0F B7 45 C4 movzx eax, [ebp+var_3C] .text:0804961E 89 04 24 mov [esp], eax ; hostshort .text:08049621 E8 FA F3 FF FF call _htons .text:08049626 8B 55 EC mov edx, [ebp+var_14] .text:08049629 66 89 42 02 mov [edx+2], ax .text:0804962D 8B 45 F0 mov eax, [ebp+var_10] .text:08049630 8B 40 0C mov eax, [eax+0Ch] .text:08049633 C7 44 24 08 10 00 00 00 mov dword ptr [esp+8], 10h ; len .text:0804963B 89 44 24 04 mov [esp+4], eax ; addr .text:0804963F 8B 45 F4 mov eax, [ebp+fd] .text:08049642 89 04 24 mov [esp], eax ; fd .text:08049645 E8 C6 F4 FF FF call _bind .text:0804964A 89 45 D4 mov [ebp+optval], eax .text:0804964D EB 0E jmp short loc_804965D .text:0804964F ; --------------------------------------------------------------------------- .text:0804964F .text:0804964F loc_804964F: ; CODE XREF: sgnet_listen+1D6j .text:0804964F ; sgnet_listen+1EFj .text:0804964F 8B 45 F0 mov eax, [ebp+var_10] .text:08049652 8B 00 mov eax, [eax] .text:08049654 89 45 F0 mov [ebp+var_10], eax .text:08049657 .text:08049657 loc_8049657: ; CODE XREF: sgnet_listen+1C1j .text:08049657 83 7D F0 00 cmp [ebp+var_10], 0 .text:0804965B 75 86 jnz short loc_80495E3 .text:0804965D .text:0804965D loc_804965D: ; CODE XREF: sgnet_listen+1B5j .text:0804965D ; sgnet_listen+22Dj .text:0804965D 8B 45 D8 mov eax, [ebp+ifap] .text:08049660 89 04 24 mov [esp], eax ; ifa .text:08049663 E8 D8 F4 FF FF call _freeifaddrs .text:08049668 8B 45 D4 mov eax, [ebp+optval] .text:0804966B 85 C0 test eax, eax .text:0804966D 74 14 jz short loc_8049683 .text:0804966F C7 44 24 04 E2 9D 04 08 mov dword ptr [esp+4], offset aUnableToBindSo ; "Unable to bind socket" .text:08049677 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:0804967E E8 DD F4 FF FF call _errx .text:08049683 ; --------------------------------------------------------------------------- .text:08049683 .text:08049683 loc_8049683: ; CODE XREF: sgnet_listen+187j .text:08049683 ; sgnet_listen+24Dj .text:08049683 83 7D 0C 11 cmp [ebp+protocol], 11h .text:08049687 74 35 jz short loc_80496BE .text:08049689 81 7D 0C FF 00 00 00 cmp [ebp+protocol], 0FFh .text:08049690 74 2C jz short loc_80496BE .text:08049692 C7 44 24 04 10 00 00 00 mov dword ptr [esp+4], 10h ; n .text:0804969A 8B 45 F4 mov eax, [ebp+fd] .text:0804969D 89 04 24 mov [esp], eax ; fd .text:080496A0 E8 CB F4 FF FF call _listen .text:080496A5 83 F8 FF cmp eax, 0FFFFFFFFh .text:080496A8 75 14 jnz short loc_80496BE .text:080496AA C7 44 24 04 F8 9D 04 08 mov dword ptr [esp+4], offset aUnableToListen ; "Unable to listen on socket" .text:080496B2 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:080496B9 E8 A2 F4 FF FF call _errx .text:080496BE ; --------------------------------------------------------------------------- .text:080496BE .text:080496BE loc_80496BE: ; CODE XREF: sgnet_listen+267j .text:080496BE ; sgnet_listen+270j ... .text:080496BE 8B 45 F4 mov eax, [ebp+fd] .text:080496C1 C9 leave .text:080496C2 C3 retn .text:080496C2 sgnet_listen endp .text:080496C2 .text:080496C3 .text:080496C3 ; =============== S U B R O U T I N E ======================================= .text:080496C3 .text:080496C3 ; Attributes: noreturn bp-based frame .text:080496C3 .text:080496C3 ; int __cdecl sgnet_server(int fd, char *name, int) .text:080496C3 public sgnet_server .text:080496C3 sgnet_server proc near ; CODE XREF: main+53p .text:080496C3 .text:080496C3 status = dword ptr -14h .text:080496C3 var_10 = dword ptr -10h .text:080496C3 var_C = dword ptr -0Ch .text:080496C3 fd = dword ptr 8 .text:080496C3 name = dword ptr 0Ch .text:080496C3 arg_8 = dword ptr 10h .text:080496C3 .text:080496C3 55 push ebp .text:080496C4 89 E5 mov ebp, esp .text:080496C6 83 EC 28 sub esp, 28h .text:080496C9 C7 04 24 00 00 00 00 mov dword ptr [esp], 0 ; timer .text:080496D0 E8 FB F2 FF FF call _time .text:080496D5 89 04 24 mov [esp], eax ; seed .text:080496D8 E8 E3 F3 FF FF call _srand .text:080496DD .text:080496DD loc_80496DD: ; CODE XREF: sgnet_server+6Cj .text:080496DD ; sgnet_server:loc_804977Bj .text:080496DD B8 00 00 00 00 mov eax, 0 .text:080496E2 C7 44 24 08 00 00 00 00 mov dword ptr [esp+8], 0 ; addr_len .text:080496EA 89 44 24 04 mov [esp+4], eax ; addr .text:080496EE 8B 45 08 mov eax, [ebp+fd] .text:080496F1 89 04 24 mov [esp], eax ; fd .text:080496F4 E8 47 F3 FF FF call _accept .text:080496F9 89 45 F4 mov [ebp+var_C], eax .text:080496FC 83 7D F4 FF cmp [ebp+var_C], 0FFFFFFFFh .text:08049700 74 75 jz short loc_8049777 .text:08049702 8B 45 F4 mov eax, [ebp+var_C] .text:08049705 89 04 24 mov [esp], eax .text:08049708 E8 3F 01 00 00 call sgnet_randfd .text:0804970D 89 45 F4 mov [ebp+var_C], eax .text:08049710 E8 3B F4 FF FF call _fork .text:08049715 89 45 F0 mov [ebp+var_10], eax .text:08049718 83 7D F0 FF cmp [ebp+var_10], 0FFFFFFFFh .text:0804971C 74 5C jz short loc_804977A .text:0804971E 83 7D F0 00 cmp [ebp+var_10], 0 .text:08049722 74 0D jz short loc_8049731 .text:08049724 8B 45 F4 mov eax, [ebp+var_C] .text:08049727 89 04 24 mov [esp], eax ; fd .text:0804972A E8 91 F4 FF FF call _close .text:0804972F EB AC jmp short loc_80496DD .text:08049731 ; --------------------------------------------------------------------------- .text:08049731 .text:08049731 loc_8049731: ; CODE XREF: sgnet_server+5Fj .text:08049731 8B 45 0C mov eax, [ebp+name] .text:08049734 89 04 24 mov [esp], eax ; name .text:08049737 E8 44 00 00 00 call sgnet_privdrop .text:0804973C C7 04 24 10 00 00 00 mov dword ptr [esp], 10h ; seconds .text:08049743 E8 B8 F2 FF FF call _alarm .text:08049748 8B 45 08 mov eax, [ebp+fd] .text:0804974B 89 04 24 mov [esp], eax ; fd .text:0804974E E8 6D F4 FF FF call _close .text:08049753 8B 45 F4 mov eax, [ebp+var_C] .text:08049756 89 04 24 mov [esp], eax .text:08049759 8B 45 10 mov eax, [ebp+arg_8] .text:0804975C FF D0 call eax .text:0804975E 89 45 EC mov [ebp+status], eax .text:08049761 8B 45 F4 mov eax, [ebp+var_C] .text:08049764 89 04 24 mov [esp], eax ; fd .text:08049767 E8 54 F4 FF FF call _close .text:0804976C 8B 45 EC mov eax, [ebp+status] .text:0804976F 89 04 24 mov [esp], eax ; status .text:08049772 E8 29 F3 FF FF call _exit .text:08049777 ; --------------------------------------------------------------------------- .text:08049777 .text:08049777 loc_8049777: ; CODE XREF: sgnet_server+3Dj .text:08049777 90 nop .text:08049778 EB 01 jmp short loc_804977B .text:0804977A ; --------------------------------------------------------------------------- .text:0804977A .text:0804977A loc_804977A: ; CODE XREF: sgnet_server+59j .text:0804977A 90 nop .text:0804977B .text:0804977B loc_804977B: ; CODE XREF: sgnet_server+B5j .text:0804977B E9 5D FF FF FF jmp loc_80496DD .text:0804977B sgnet_server endp .text:0804977B .text:08049780 .text:08049780 ; =============== S U B R O U T I N E ======================================= .text:08049780 .text:08049780 ; Attributes: bp-based frame .text:08049780 .text:08049780 ; int __cdecl sgnet_privdrop(char *name) .text:08049780 public sgnet_privdrop .text:08049780 sgnet_privdrop proc near ; CODE XREF: sgnet_server+74p .text:08049780 .text:08049780 var_C = dword ptr -0Ch .text:08049780 name = dword ptr 8 .text:08049780 .text:08049780 55 push ebp .text:08049781 89 E5 mov ebp, esp .text:08049783 83 EC 28 sub esp, 28h .text:08049786 8B 45 08 mov eax, [ebp+name] .text:08049789 89 04 24 mov [esp], eax ; name .text:0804978C E8 CF F1 FF FF call _getpwnam .text:08049791 89 45 F4 mov [ebp+var_C], eax .text:08049794 83 7D F4 00 cmp [ebp+var_C], 0 .text:08049798 75 14 jnz short loc_80497AE .text:0804979A C7 44 24 04 13 9E 04 08 mov dword ptr [esp+4], offset aUnableToFindUs ; "Unable to find user" .text:080497A2 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:080497A9 E8 B2 F3 FF FF call _errx .text:080497AE ; --------------------------------------------------------------------------- .text:080497AE .text:080497AE loc_80497AE: ; CODE XREF: sgnet_privdrop+18j .text:080497AE C7 04 24 27 9E 04 08 mov dword ptr [esp], offset path ; "/var/run/sgstatd" .text:080497B5 E8 36 F2 FF FF call _chdir .text:080497BA 85 C0 test eax, eax .text:080497BC 79 14 jns short loc_80497D2 .text:080497BE C7 44 24 04 38 9E 04 08 mov dword ptr [esp+4], offset aUnableToChange ; "Unable to change directory to /var/run/"... .text:080497C6 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:080497CD E8 8E F3 FF FF call _errx .text:080497D2 ; --------------------------------------------------------------------------- .text:080497D2 .text:080497D2 loc_80497D2: ; CODE XREF: sgnet_privdrop+3Cj .text:080497D2 C7 44 24 04 00 00 00 00 mov dword ptr [esp+4], 0 ; groups .text:080497DA C7 04 24 00 00 00 00 mov dword ptr [esp], 0 ; n .text:080497E1 E8 4A F2 FF FF call _setgroups .text:080497E6 85 C0 test eax, eax .text:080497E8 79 14 jns short loc_80497FE .text:080497EA C7 44 24 04 67 9E 04 08 mov dword ptr [esp+4], offset aUnableToRemove ; "Unable to remove extra groups" .text:080497F2 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:080497F9 E8 62 F3 FF FF call _errx .text:080497FE ; --------------------------------------------------------------------------- .text:080497FE .text:080497FE loc_80497FE: ; CODE XREF: sgnet_privdrop+68j .text:080497FE 8B 45 F4 mov eax, [ebp+var_C] .text:08049801 8B 40 0C mov eax, [eax+0Ch] .text:08049804 89 04 24 mov [esp], eax ; gid .text:08049807 E8 54 F2 FF FF call _setgid .text:0804980C 85 C0 test eax, eax .text:0804980E 79 14 jns short loc_8049824 .text:08049810 C7 44 24 04 85 9E 04 08 mov dword ptr [esp+4], offset aUnableToChan_0 ; "Unable to change GID" .text:08049818 C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:0804981F E8 3C F3 FF FF call _errx .text:08049824 ; --------------------------------------------------------------------------- .text:08049824 .text:08049824 loc_8049824: ; CODE XREF: sgnet_privdrop+8Ej .text:08049824 8B 45 F4 mov eax, [ebp+var_C] .text:08049827 8B 40 08 mov eax, [eax+8] .text:0804982A 89 04 24 mov [esp], eax ; uid .text:0804982D E8 4E F3 FF FF call _setuid .text:08049832 85 C0 test eax, eax .text:08049834 79 14 jns short locret_804984A .text:08049836 C7 44 24 04 9A 9E 04 08 mov dword ptr [esp+4], offset aUnableToChan_1 ; "Unable to change UID" .text:0804983E C7 04 24 FF FF FF FF mov dword ptr [esp], 0FFFFFFFFh ; status .text:08049845 E8 16 F3 FF FF call _errx .text:0804984A ; --------------------------------------------------------------------------- .text:0804984A .text:0804984A locret_804984A: ; CODE XREF: sgnet_privdrop+B4j .text:0804984A C9 leave .text:0804984B C3 retn .text:0804984B sgnet_privdrop endp .text:0804984B .text:0804984C .text:0804984C ; =============== S U B R O U T I N E ======================================= .text:0804984C .text:0804984C ; Attributes: bp-based frame .text:0804984C .text:0804984C public sgnet_randfd .text:0804984C sgnet_randfd proc near ; CODE XREF: sgnet_server+45p .text:0804984C .text:0804984C buf = dword ptr -14h .text:0804984C fd = dword ptr -10h .text:0804984C var_C = dword ptr -0Ch .text:0804984C arg_0 = dword ptr 8 .text:0804984C .text:0804984C 55 push ebp .text:0804984D 89 E5 mov ebp, esp .text:0804984F 83 EC 28 sub esp, 28h .text:08049852 E8 29 F2 FF FF call _getdtablesize .text:08049857 89 45 F4 mov [ebp+var_C], eax .text:0804985A C7 44 24 04 00 00 00 00 mov dword ptr [esp+4], 0 ; oflag .text:08049862 C7 04 24 AF 9E 04 08 mov dword ptr [esp], offset file ; "/dev/urandom" .text:08049869 E8 42 F2 FF FF call _open .text:0804986E 89 45 F0 mov [ebp+fd], eax .text:08049871 C7 45 EC 00 00 00 00 mov [ebp+buf], 0 .text:08049878 83 7D F0 00 cmp [ebp+fd], 0 .text:0804987C 79 4A jns short loc_80498C8 .text:0804987E EB 12 jmp short loc_8049892 .text:08049880 ; --------------------------------------------------------------------------- .text:08049880 .text:08049880 loc_8049880: ; CODE XREF: sgnet_randfd+4Cj .text:08049880 E8 AB F2 FF FF call _rand .text:08049885 89 C2 mov edx, eax .text:08049887 C1 FA 1F sar edx, 1Fh .text:0804988A F7 7D F4 idiv [ebp+var_C] .text:0804988D 89 D0 mov eax, edx .text:0804988F 89 45 EC mov [ebp+buf], eax .text:08049892 .text:08049892 loc_8049892: ; CODE XREF: sgnet_randfd+32j .text:08049892 8B 45 EC mov eax, [ebp+buf] .text:08049895 3B 45 08 cmp eax, [ebp+arg_0] .text:08049898 7C E6 jl short loc_8049880 .text:0804989A EB 40 jmp short loc_80498DC .text:0804989C ; --------------------------------------------------------------------------- .text:0804989C .text:0804989C loc_804989C: ; CODE XREF: sgnet_randfd+83j .text:0804989C C7 44 24 08 02 00 00 00 mov dword ptr [esp+8], 2 ; nbytes .text:080498A4 8D 45 EC lea eax, [ebp+buf] .text:080498A7 89 44 24 04 mov [esp+4], eax ; buf .text:080498AB 8B 45 F0 mov eax, [ebp+fd] .text:080498AE 89 04 24 mov [esp], eax ; fd .text:080498B1 E8 DA F0 FF FF call _read .text:080498B6 8B 45 EC mov eax, [ebp+buf] .text:080498B9 89 C2 mov edx, eax .text:080498BB C1 FA 1F sar edx, 1Fh .text:080498BE F7 7D F4 idiv [ebp+var_C] .text:080498C1 89 D0 mov eax, edx .text:080498C3 89 45 EC mov [ebp+buf], eax .text:080498C6 EB 01 jmp short loc_80498C9 .text:080498C8 ; --------------------------------------------------------------------------- .text:080498C8 .text:080498C8 loc_80498C8: ; CODE XREF: sgnet_randfd+30j .text:080498C8 90 nop .text:080498C9 .text:080498C9 loc_80498C9: ; CODE XREF: sgnet_randfd+7Aj .text:080498C9 8B 45 EC mov eax, [ebp+buf] .text:080498CC 3B 45 08 cmp eax, [ebp+arg_0] .text:080498CF 7C CB jl short loc_804989C .text:080498D1 8B 45 F0 mov eax, [ebp+fd] .text:080498D4 89 04 24 mov [esp], eax ; fd .text:080498D7 E8 E4 F2 FF FF call _close .text:080498DC .text:080498DC loc_80498DC: ; CODE XREF: sgnet_randfd+4Ej .text:080498DC 8B 45 EC mov eax, [ebp+buf] .text:080498DF 89 44 24 04 mov [esp+4], eax ; fd2 .text:080498E3 8B 45 08 mov eax, [ebp+arg_0] .text:080498E6 89 04 24 mov [esp], eax ; fd .text:080498E9 E8 82 F0 FF FF call _dup2 .text:080498EE 83 F8 FF cmp eax, 0FFFFFFFFh .text:080498F1 75 08 jnz short loc_80498FB .text:080498F3 8B 45 08 mov eax, [ebp+arg_0] .text:080498F6 89 45 EC mov [ebp+buf], eax .text:080498F9 EB 0B jmp short loc_8049906 .text:080498FB ; --------------------------------------------------------------------------- .text:080498FB .text:080498FB loc_80498FB: ; CODE XREF: sgnet_randfd+A5j .text:080498FB 8B 45 08 mov eax, [ebp+arg_0] .text:080498FE 89 04 24 mov [esp], eax ; fd .text:08049901 E8 BA F2 FF FF call _close .text:08049906 .text:08049906 loc_8049906: ; CODE XREF: sgnet_randfd+ADj .text:08049906 8B 45 EC mov eax, [ebp+buf] .text:08049909 C9 leave .text:0804990A C3 retn .text:0804990A sgnet_randfd endp .text:0804990A .text:0804990B .text:0804990B ; =============== S U B R O U T I N E ======================================= .text:0804990B .text:0804990B ; Attributes: bp-based frame .text:0804990B .text:0804990B ; int __cdecl sgnet_readn(int fd, int, int) .text:0804990B public sgnet_readn .text:0804990B sgnet_readn proc near ; CODE XREF: sgstatd+4Dp .text:0804990B .text:0804990B var_14 = dword ptr -14h .text:0804990B var_10 = dword ptr -10h .text:0804990B var_C = dword ptr -0Ch .text:0804990B fd = dword ptr 8 .text:0804990B arg_4 = dword ptr 0Ch .text:0804990B arg_8 = dword ptr 10h .text:0804990B .text:0804990B 55 push ebp .text:0804990C 89 E5 mov ebp, esp .text:0804990E 83 EC 28 sub esp, 28h .text:08049911 C7 45 F0 00 00 00 00 mov [ebp+var_10], 0 .text:08049918 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:0804991F 8B 45 0C mov eax, [ebp+arg_4] .text:08049922 89 45 EC mov [ebp+var_14], eax .text:08049925 83 7D 08 00 cmp [ebp+fd], 0 .text:08049929 78 52 js short loc_804997D .text:0804992B 83 7D EC 00 cmp [ebp+var_14], 0 .text:0804992F 74 4C jz short loc_804997D .text:08049931 83 7D 10 00 cmp [ebp+arg_8], 0 .text:08049935 74 46 jz short loc_804997D .text:08049937 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:0804993E EB 32 jmp short loc_8049972 .text:08049940 ; --------------------------------------------------------------------------- .text:08049940 .text:08049940 loc_8049940: ; CODE XREF: sgnet_readn+6Dj .text:08049940 8B 45 F4 mov eax, [ebp+var_C] .text:08049943 8B 55 10 mov edx, [ebp+arg_8] .text:08049946 29 C2 sub edx, eax .text:08049948 8B 45 F4 mov eax, [ebp+var_C] .text:0804994B 8B 4D EC mov ecx, [ebp+var_14] .text:0804994E 01 C8 add eax, ecx .text:08049950 89 54 24 08 mov [esp+8], edx ; nbytes .text:08049954 89 44 24 04 mov [esp+4], eax ; buf .text:08049958 8B 45 08 mov eax, [ebp+fd] .text:0804995B 89 04 24 mov [esp], eax ; fd .text:0804995E E8 2D F0 FF FF call _read .text:08049963 89 45 F0 mov [ebp+var_10], eax .text:08049966 83 7D F0 00 cmp [ebp+var_10], 0 .text:0804996A 7E 10 jle short loc_804997C .text:0804996C 8B 45 F0 mov eax, [ebp+var_10] .text:0804996F 01 45 F4 add [ebp+var_C], eax .text:08049972 .text:08049972 loc_8049972: ; CODE XREF: sgnet_readn+33j .text:08049972 8B 45 F4 mov eax, [ebp+var_C] .text:08049975 3B 45 10 cmp eax, [ebp+arg_8] .text:08049978 72 C6 jb short loc_8049940 .text:0804997A EB 01 jmp short loc_804997D .text:0804997C ; --------------------------------------------------------------------------- .text:0804997C .text:0804997C loc_804997C: ; CODE XREF: sgnet_readn+5Fj .text:0804997C 90 nop .text:0804997D .text:0804997D loc_804997D: ; CODE XREF: sgnet_readn+1Ej .text:0804997D ; sgnet_readn+24j ... .text:0804997D 8B 45 F4 mov eax, [ebp+var_C] .text:08049980 C9 leave .text:08049981 C3 retn .text:08049981 sgnet_readn endp .text:08049981 .text:08049982 .text:08049982 ; =============== S U B R O U T I N E ======================================= .text:08049982 .text:08049982 ; Attributes: bp-based frame .text:08049982 .text:08049982 ; int __cdecl sgnet_readsn(int fd, int, int) .text:08049982 public sgnet_readsn .text:08049982 sgnet_readsn proc near .text:08049982 .text:08049982 buf = byte ptr -0Dh .text:08049982 var_C = dword ptr -0Ch .text:08049982 fd = dword ptr 8 .text:08049982 arg_4 = dword ptr 0Ch .text:08049982 arg_8 = dword ptr 10h .text:08049982 .text:08049982 55 push ebp .text:08049983 89 E5 mov ebp, esp .text:08049985 83 EC 28 sub esp, 28h .text:08049988 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:0804998F 83 7D 08 00 cmp [ebp+fd], 0 .text:08049993 78 65 js short loc_80499FA .text:08049995 83 7D 0C 00 cmp [ebp+arg_4], 0 .text:08049999 74 5F jz short loc_80499FA .text:0804999B 83 7D 10 00 cmp [ebp+arg_8], 0 .text:0804999F 74 59 jz short loc_80499FA .text:080499A1 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:080499A8 EB 45 jmp short loc_80499EF .text:080499AA ; --------------------------------------------------------------------------- .text:080499AA .text:080499AA loc_80499AA: ; CODE XREF: sgnet_readsn+73j .text:080499AA C7 44 24 08 01 00 00 00 mov dword ptr [esp+8], 1 ; nbytes .text:080499B2 8D 45 F3 lea eax, [ebp+buf] .text:080499B5 89 44 24 04 mov [esp+4], eax ; buf .text:080499B9 8B 45 08 mov eax, [ebp+fd] .text:080499BC 89 04 24 mov [esp], eax ; fd .text:080499BF E8 CC EF FF FF call _read .text:080499C4 85 C0 test eax, eax .text:080499C6 7E 31 jle short loc_80499F9 .text:080499C8 0F B6 45 F3 movzx eax, [ebp+buf] .text:080499CC 3C 0A cmp al, 0Ah .text:080499CE 75 0D jnz short loc_80499DD .text:080499D0 8B 45 F4 mov eax, [ebp+var_C] .text:080499D3 8B 55 0C mov edx, [ebp+arg_4] .text:080499D6 01 D0 add eax, edx .text:080499D8 C6 00 00 mov byte ptr [eax], 0 .text:080499DB EB 1D jmp short loc_80499FA .text:080499DD ; --------------------------------------------------------------------------- .text:080499DD .text:080499DD loc_80499DD: ; CODE XREF: sgnet_readsn+4Cj .text:080499DD 8B 45 F4 mov eax, [ebp+var_C] .text:080499E0 8B 55 0C mov edx, [ebp+arg_4] .text:080499E3 01 C2 add edx, eax .text:080499E5 0F B6 45 F3 movzx eax, [ebp+buf] .text:080499E9 88 02 mov [edx], al .text:080499EB 83 45 F4 01 add [ebp+var_C], 1 .text:080499EF .text:080499EF loc_80499EF: ; CODE XREF: sgnet_readsn+26j .text:080499EF 8B 45 F4 mov eax, [ebp+var_C] .text:080499F2 3B 45 10 cmp eax, [ebp+arg_8] .text:080499F5 72 B3 jb short loc_80499AA .text:080499F7 EB 01 jmp short loc_80499FA .text:080499F9 ; --------------------------------------------------------------------------- .text:080499F9 .text:080499F9 loc_80499F9: ; CODE XREF: sgnet_readsn+44j .text:080499F9 90 nop .text:080499FA .text:080499FA loc_80499FA: ; CODE XREF: sgnet_readsn+11j .text:080499FA ; sgnet_readsn+17j ... .text:080499FA 8B 45 F4 mov eax, [ebp+var_C] .text:080499FD C9 leave .text:080499FE C3 retn .text:080499FE sgnet_readsn endp .text:080499FE .text:080499FF .text:080499FF ; =============== S U B R O U T I N E ======================================= .text:080499FF .text:080499FF ; Attributes: bp-based frame .text:080499FF .text:080499FF ; int __cdecl sgnet_writes(int fd, char *s) .text:080499FF public sgnet_writes .text:080499FF sgnet_writes proc near ; CODE XREF: child_main+149p .text:080499FF ; child_main+1BCp ... .text:080499FF .text:080499FF fd = dword ptr 8 .text:080499FF s = dword ptr 0Ch .text:080499FF .text:080499FF 55 push ebp .text:08049A00 89 E5 mov ebp, esp .text:08049A02 83 EC 18 sub esp, 18h .text:08049A05 8B 45 0C mov eax, [ebp+s] .text:08049A08 89 04 24 mov [esp], eax ; s .text:08049A0B E8 C0 F0 FF FF call _strlen .text:08049A10 89 44 24 08 mov [esp+8], eax ; int .text:08049A14 8B 45 0C mov eax, [ebp+s] .text:08049A17 89 44 24 04 mov [esp+4], eax ; int .text:08049A1B 8B 45 08 mov eax, [ebp+fd] .text:08049A1E 89 04 24 mov [esp], eax ; fd .text:08049A21 E8 02 00 00 00 call sgnet_writen .text:08049A26 C9 leave .text:08049A27 C3 retn .text:08049A27 sgnet_writes endp .text:08049A27 .text:08049A28 .text:08049A28 ; =============== S U B R O U T I N E ======================================= .text:08049A28 .text:08049A28 ; Attributes: bp-based frame .text:08049A28 .text:08049A28 ; int __cdecl sgnet_writen(int fd, int, int) .text:08049A28 public sgnet_writen .text:08049A28 sgnet_writen proc near ; CODE XREF: sgnet_writes+22p .text:08049A28 ; sgnet_writef+58p .text:08049A28 .text:08049A28 var_14 = dword ptr -14h .text:08049A28 var_10 = dword ptr -10h .text:08049A28 var_C = dword ptr -0Ch .text:08049A28 fd = dword ptr 8 .text:08049A28 arg_4 = dword ptr 0Ch .text:08049A28 arg_8 = dword ptr 10h .text:08049A28 .text:08049A28 55 push ebp .text:08049A29 89 E5 mov ebp, esp .text:08049A2B 83 EC 28 sub esp, 28h .text:08049A2E C7 45 F0 00 00 00 00 mov [ebp+var_10], 0 .text:08049A35 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:08049A3C 8B 45 0C mov eax, [ebp+arg_4] .text:08049A3F 89 45 EC mov [ebp+var_14], eax .text:08049A42 83 7D 08 00 cmp [ebp+fd], 0 .text:08049A46 78 54 js short loc_8049A9C .text:08049A48 83 7D EC 00 cmp [ebp+var_14], 0 .text:08049A4C 74 4E jz short loc_8049A9C .text:08049A4E 83 7D 10 00 cmp [ebp+arg_8], 0 .text:08049A52 74 48 jz short loc_8049A9C .text:08049A54 C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:08049A5B EB 37 jmp short loc_8049A94 .text:08049A5D ; --------------------------------------------------------------------------- .text:08049A5D .text:08049A5D loc_8049A5D: ; CODE XREF: sgnet_writen+72j .text:08049A5D 8B 45 F4 mov eax, [ebp+var_C] .text:08049A60 8B 55 10 mov edx, [ebp+arg_8] .text:08049A63 29 C2 sub edx, eax .text:08049A65 8B 45 F4 mov eax, [ebp+var_C] .text:08049A68 8B 4D EC mov ecx, [ebp+var_14] .text:08049A6B 01 C8 add eax, ecx .text:08049A6D 89 54 24 08 mov [esp+8], edx ; n .text:08049A71 89 44 24 04 mov [esp+4], eax ; buf .text:08049A75 8B 45 08 mov eax, [ebp+fd] .text:08049A78 89 04 24 mov [esp], eax ; fd .text:08049A7B E8 70 F0 FF FF call _write .text:08049A80 89 45 F0 mov [ebp+var_10], eax .text:08049A83 83 7D F0 00 cmp [ebp+var_10], 0 .text:08049A87 7F 05 jg short loc_8049A8E .text:08049A89 8B 45 F0 mov eax, [ebp+var_10] .text:08049A8C EB 11 jmp short locret_8049A9F .text:08049A8E ; --------------------------------------------------------------------------- .text:08049A8E .text:08049A8E loc_8049A8E: ; CODE XREF: sgnet_writen+5Fj .text:08049A8E 8B 45 F0 mov eax, [ebp+var_10] .text:08049A91 01 45 F4 add [ebp+var_C], eax .text:08049A94 .text:08049A94 loc_8049A94: ; CODE XREF: sgnet_writen+33j .text:08049A94 8B 45 F4 mov eax, [ebp+var_C] .text:08049A97 3B 45 10 cmp eax, [ebp+arg_8] .text:08049A9A 72 C1 jb short loc_8049A5D .text:08049A9C .text:08049A9C loc_8049A9C: ; CODE XREF: sgnet_writen+1Ej .text:08049A9C ; sgnet_writen+24j ... .text:08049A9C 8B 45 F4 mov eax, [ebp+var_C] .text:08049A9F .text:08049A9F locret_8049A9F: ; CODE XREF: sgnet_writen+64j .text:08049A9F C9 leave .text:08049AA0 C3 retn .text:08049AA0 sgnet_writen endp .text:08049AA0 .text:08049AA1 .text:08049AA1 ; =============== S U B R O U T I N E ======================================= .text:08049AA1 .text:08049AA1 ; Attributes: bp-based frame .text:08049AA1 .text:08049AA1 ; int __cdecl sgnet_writef(int fd, char *, char) .text:08049AA1 public sgnet_writef .text:08049AA1 sgnet_writef proc near .text:08049AA1 .text:08049AA1 s = dword ptr -14h .text:08049AA1 var_10 = dword ptr -10h .text:08049AA1 var_C = dword ptr -0Ch .text:08049AA1 fd = dword ptr 8 .text:08049AA1 arg_4 = dword ptr 0Ch .text:08049AA1 arg_8 = byte ptr 10h .text:08049AA1 .text:08049AA1 55 push ebp .text:08049AA2 89 E5 mov ebp, esp .text:08049AA4 83 EC 28 sub esp, 28h .text:08049AA7 C7 45 EC 00 00 00 00 mov [ebp+s], 0 .text:08049AAE C7 45 F4 00 00 00 00 mov [ebp+var_C], 0 .text:08049AB5 8D 45 10 lea eax, [ebp+arg_8] .text:08049AB8 89 45 F0 mov [ebp+var_10], eax .text:08049ABB 8B 45 F0 mov eax, [ebp+var_10] .text:08049ABE 89 44 24 08 mov [esp+8], eax ; va_list .text:08049AC2 8B 45 0C mov eax, [ebp+arg_4] .text:08049AC5 89 44 24 04 mov [esp+4], eax ; char * .text:08049AC9 8D 45 EC lea eax, [ebp+s] .text:08049ACC 89 04 24 mov [esp], eax ; char ** .text:08049ACF E8 2C F0 FF FF call _vasprintf .text:08049AD4 89 45 F4 mov [ebp+var_C], eax .text:08049AD7 83 7D F4 00 cmp [ebp+var_C], 0 .text:08049ADB 78 26 js short loc_8049B03 .text:08049ADD 8B 45 EC mov eax, [ebp+s] .text:08049AE0 89 04 24 mov [esp], eax ; s .text:08049AE3 E8 E8 EF FF FF call _strlen .text:08049AE8 8B 55 EC mov edx, [ebp+s] .text:08049AEB 89 44 24 08 mov [esp+8], eax ; int .text:08049AEF 89 54 24 04 mov [esp+4], edx ; int .text:08049AF3 8B 45 08 mov eax, [ebp+fd] .text:08049AF6 89 04 24 mov [esp], eax ; fd .text:08049AF9 E8 2A FF FF FF call sgnet_writen .text:08049AFE 89 45 F4 mov [ebp+var_C], eax .text:08049B01 EB 01 jmp short loc_8049B04 .text:08049B03 ; --------------------------------------------------------------------------- .text:08049B03 .text:08049B03 loc_8049B03: ; CODE XREF: sgnet_writef+3Aj .text:08049B03 90 nop .text:08049B04 .text:08049B04 loc_8049B04: ; CODE XREF: sgnet_writef+60j .text:08049B04 8B 45 EC mov eax, [ebp+s] .text:08049B07 89 04 24 mov [esp], eax ; ptr .text:08049B0A E8 A1 EE FF FF call _free .text:08049B0F 8B 45 F4 mov eax, [ebp+var_C] .text:08049B12 C9 leave .text:08049B13 C3 retn .text:08049B13 sgnet_writef endp .text:08049B13 .text:08049B13 ; --------------------------------------------------------------------------- .text:08049B14 90 90 90 90 90 90 90 90+ align 10h .text:08049B20 .text:08049B20 ; =============== S U B R O U T I N E ======================================= .text:08049B20 .text:08049B20 ; Attributes: bp-based frame .text:08049B20 .text:08049B20 ; void _libc_csu_fini(void) .text:08049B20 public __libc_csu_fini .text:08049B20 __libc_csu_fini proc near ; DATA XREF: _start+Bo .text:08049B20 55 push ebp .text:08049B21 89 E5 mov ebp, esp .text:08049B23 5D pop ebp .text:08049B24 C3 retn .text:08049B24 __libc_csu_fini endp .text:08049B24 .text:08049B24 ; --------------------------------------------------------------------------- .text:08049B25 8D 74 26 00 8D BC 27 00+ align 10h .text:08049B30 .text:08049B30 ; =============== S U B R O U T I N E ======================================= .text:08049B30 .text:08049B30 ; Attributes: bp-based frame .text:08049B30 .text:08049B30 ; void _libc_csu_init(void) .text:08049B30 public __libc_csu_init .text:08049B30 __libc_csu_init proc near ; DATA XREF: _start+10o .text:08049B30 .text:08049B30 arg_0 = dword ptr 8 .text:08049B30 arg_4 = dword ptr 0Ch .text:08049B30 arg_8 = dword ptr 10h .text:08049B30 .text:08049B30 55 push ebp .text:08049B31 89 E5 mov ebp, esp .text:08049B33 57 push edi .text:08049B34 56 push esi .text:08049B35 53 push ebx .text:08049B36 E8 4F 00 00 00 call __i686_get_pc_thunk_bx .text:08049B3B 81 C3 D1 16 00 00 add ebx, 16D1h .text:08049B41 83 EC 1C sub esp, 1Ch .text:08049B44 E8 CF ED FF FF call _init_proc .text:08049B49 8D BB 04 FF FF FF lea edi, (__do_global_dtors_aux_fini_array_entry - 804B20Ch)[ebx] .text:08049B4F 8D 83 00 FF FF FF lea eax, (__frame_dummy_init_array_entry - 804B20Ch)[ebx] .text:08049B55 29 C7 sub edi, eax .text:08049B57 C1 FF 02 sar edi, 2 .text:08049B5A 85 FF test edi, edi .text:08049B5C 74 24 jz short loc_8049B82 .text:08049B5E 31 F6 xor esi, esi .text:08049B60 .text:08049B60 loc_8049B60: ; CODE XREF: __libc_csu_init+50j .text:08049B60 8B 45 10 mov eax, [ebp+arg_8] .text:08049B63 89 44 24 08 mov [esp+8], eax .text:08049B67 8B 45 0C mov eax, [ebp+arg_4] .text:08049B6A 89 44 24 04 mov [esp+4], eax .text:08049B6E 8B 45 08 mov eax, [ebp+arg_0] .text:08049B71 89 04 24 mov [esp], eax .text:08049B74 FF 94 B3 00 FF FF FF call ds:(__frame_dummy_init_array_entry - 804B20Ch)[ebx+esi*4] .text:08049B7B 83 C6 01 add esi, 1 .text:08049B7E 39 FE cmp esi, edi .text:08049B80 72 DE jb short loc_8049B60 .text:08049B82 .text:08049B82 loc_8049B82: ; CODE XREF: __libc_csu_init+2Cj .text:08049B82 83 C4 1C add esp, 1Ch .text:08049B85 5B pop ebx .text:08049B86 5E pop esi .text:08049B87 5F pop edi .text:08049B88 5D pop ebp .text:08049B89 C3 retn .text:08049B89 __libc_csu_init endp .text:08049B89 .text:08049B8A .text:08049B8A ; =============== S U B R O U T I N E ======================================= .text:08049B8A .text:08049B8A .text:08049B8A public __i686_get_pc_thunk_bx .text:08049B8A __i686_get_pc_thunk_bx proc near ; CODE XREF: __libc_csu_init+6p .text:08049B8A 8B 1C 24 mov ebx, [esp+0] .text:08049B8D C3 retn .text:08049B8D __i686_get_pc_thunk_bx endp .text:08049B8D .text:08049B8D ; --------------------------------------------------------------------------- .text:08049B8E 90 90 align 10h .text:08049B8E _text ends .text:08049B8E .fini:08049B90 ; =========================================================================== .fini:08049B90 .fini:08049B90 ; Segment type: Pure code .fini:08049B90 ; Segment permissions: Read/Execute .fini:08049B90 _fini segment dword public 'CODE' use32 .fini:08049B90 assume cs:_fini .fini:08049B90 ;org 8049B90h .fini:08049B90 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .fini:08049B90 .fini:08049B90 ; =============== S U B R O U T I N E ======================================= .fini:08049B90 .fini:08049B90 ; Attributes: bp-based frame .fini:08049B90 .fini:08049B90 public _term_proc .fini:08049B90 _term_proc proc near .fini:08049B90 55 push ebp ; _fini .fini:08049B91 89 E5 mov ebp, esp .fini:08049B93 53 push ebx .fini:08049B94 83 EC 04 sub esp, 4 .fini:08049B97 E8 00 00 00 00 call $+5 .fini:08049B9C 5B pop ebx .fini:08049B9D 81 C3 70 16 00 00 add ebx, 1670h .fini:08049BA3 59 pop ecx .fini:08049BA4 5B pop ebx .fini:08049BA5 C9 leave .fini:08049BA6 C3 retn .fini:08049BA6 _term_proc endp .fini:08049BA6 .fini:08049BA6 _fini ends .fini:08049BA6 .rodata:08049BA8 ; =========================================================================== .rodata:08049BA8 .rodata:08049BA8 ; Segment type: Pure data .rodata:08049BA8 ; Segment permissions: Read .rodata:08049BA8 _rodata segment dword public 'CONST' use32 .rodata:08049BA8 assume cs:_rodata .rodata:08049BA8 ;org 8049BA8h .rodata:08049BA8 public _fp_hw .rodata:08049BA8 03 _fp_hw db 3 .rodata:08049BA9 00 db 0 .rodata:08049BAA 00 db 0 .rodata:08049BAB 00 db 0 .rodata:08049BAC public _IO_stdin_used .rodata:08049BAC 01 _IO_stdin_used db 1 .rodata:08049BAD 00 db 0 .rodata:08049BAE 02 db 2 .rodata:08049BAF 00 db 0 .rodata:08049BB0 6E 6F 62 6F 64 79 00 aNobody db 'nobody',0 ; DATA XREF: .data:USERo .rodata:08049BB7 00 align 4 .rodata:08049BB8 public PORT .rodata:08049BB8 92 10 PORT dw 1092h ; DATA XREF: main+15r .rodata:08049BBA 00 00 align 4 .rodata:08049BBC 0A 57 65 6C 63 6F 6D 65+aWelcomeToTheSu db 0Ah ; DATA XREF: child_main+24o .rodata:08049BBC 20 74 6F 20 74 68 65 20+ db 'Welcome to the SuperGnome Server Status Center!',0Ah,0 .rodata:08049BEE 00 00 align 10h .rodata:08049BF0 50 6C 65 61 73 65 20 65+aPleaseEnterOne db 'Please enter one of the following options:',0Ah .rodata:08049BF0 6E 74 65 72 20 6F 6E 65+ ; DATA XREF: child_main+3Fo .rodata:08049BF0 20 6F 66 20 74 68 65 20+ db 0Ah,0 .rodata:08049C1D 31 20 2D 20 41 6E 61 6C+a1AnalyzeHardDi db '1 - Analyze hard disk usage',0Ah,0 .rodata:08049C1D 79 7A 65 20 68 61 72 64+ ; DATA XREF: child_main+5Ao .rodata:08049C3A 32 20 2D 20 4C 69 73 74+a2ListOpenTcpSo db '2 - List open TCP sockets',0Ah,0 .rodata:08049C3A 20 6F 70 65 6E 20 54 43+ ; DATA XREF: child_main+75o .rodata:08049C55 33 20 2D 20 43 68 65 63+a3CheckLoggedIn db '3 - Check logged in users',0Ah,0 .rodata:08049C55 6B 20 6C 6F 67 67 65 64+ ; DATA XREF: child_main+90o .rodata:08049C70 ; char modes[] .rodata:08049C70 72 00 modes db 'r',0 ; DATA XREF: child_main:loc_8048DC0o .rodata:08049C70 ; child_main:loc_8048E33o ... .rodata:08049C72 ; char command[] .rodata:08049C72 2F 62 69 6E 2F 64 66 00 command db '/bin/df',0 ; DATA XREF: child_main+10Co .rodata:08049C7A ; char s[] .rodata:08049C7A 46 61 69 6C 65 64 20 74+s db 'Failed to run command',0 .rodata:08049C7A 6F 20 72 75 6E 20 63 6F+ ; DATA XREF: child_main+121o .rodata:08049C7A 6D 6D 61 6E 64 00 ; child_main+194o ... .rodata:08049C90 ; char aBinNetstatTan[] .rodata:08049C90 2F 62 69 6E 2F 6E 65 74+aBinNetstatTan db '/bin/netstat -tan',0 .rodata:08049C90 73 74 61 74 20 2D 74 61+ ; DATA XREF: child_main+17Fo .rodata:08049CA2 ; char aUsrBinWho[] .rodata:08049CA2 2F 75 73 72 2F 62 69 6E+aUsrBinWho db '/usr/bin/who',0 ; DATA XREF: child_main+1F2o .rodata:08049CAF 0A 0A 48 00 asc_8049CAF db 0Ah ; DATA XREF: child_main+265o .rodata:08049CAF db 0Ah .rodata:08049CAF db 'H',0 .rodata:08049CB3 69 00 aI db 'i',0 ; DATA XREF: child_main+28Co .rodata:08049CB5 64 00 aD db 'd',0 ; DATA XREF: child_main+2B3o .rodata:08049CB5 ; child_main+2DAo ... .rodata:08049CB7 65 00 aE db 'e',0 ; DATA XREF: child_main+301o .rodata:08049CB7 ; child_main+4D5o ... .rodata:08049CB9 6E 00 aN db 'n',0 ; DATA XREF: child_main+328o .rodata:08049CB9 ; child_main+439o .rodata:08049CBB 20 00 asc_8049CBB db ' ',0 ; DATA XREF: child_main+34Fo .rodata:08049CBB ; child_main+487o .rodata:08049CBD 63 00 aC db 'c',0 ; DATA XREF: child_main+376o .rodata:08049CBD ; child_main+54Ao .rodata:08049CBF 6F 00 aO db 'o',0 ; DATA XREF: child_main+39Do .rodata:08049CC1 6D 00 aM db 'm',0 ; DATA XREF: child_main+3C4o .rodata:08049CC1 ; child_main+3EBo .rodata:08049CC3 61 00 aA db 'a',0 ; DATA XREF: child_main+412o .rodata:08049CC5 74 00 aT db 't',0 ; DATA XREF: child_main+4FCo .rodata:08049CC5 ; child_main+571o .rodata:08049CC7 21 0A 0A 00 asc_8049CC7 db '!',0Ah ; DATA XREF: child_main+5E6o .rodata:08049CC7 db 0Ah,0 .rodata:08049CCB 00 align 4 .rodata:08049CCC 45 6E 74 65 72 20 61 20+aEnterAShortMes db 'Enter a short message to share with GnomeNet (please allow 10 sec' .rodata:08049CCC 73 68 6F 72 74 20 6D 65+ ; DATA XREF: child_main+60Do .rodata:08049CCC 73 73 61 67 65 20 74 6F+ db 'onds) => ',0 .rodata:08049D17 ; char aRequestComplet[] .rodata:08049D17 0A 52 65 71 75 65 73 74+aRequestComplet db 0Ah ; DATA XREF: child_main+638o .rodata:08049D17 20 43 6F 6D 70 6C 65 74+ db 'Request Completed!',0Ah .rodata:08049D17 65 64 21 0A 0A 00 db 0Ah,0 .rodata:08049D2D 49 6E 76 61 6C 69 64 20+aInvalidChoice db 'Invalid choice!',0Ah,0 .rodata:08049D2D 63 68 6F 69 63 65 21 0A+ ; DATA XREF: child_main+655o .rodata:08049D3E ; char aCanaryNotRepai[] .rodata:08049D3E 43 61 6E 61 72 79 20 6E+aCanaryNotRepai db 'Canary not repaired.',0 .rodata:08049D3E 6F 74 20 72 65 70 61 69+ ; DATA XREF: sgnet_exit+6o .rodata:08049D53 0A 54 68 69 73 20 66 75+aThisFunctionIs db 0Ah ; DATA XREF: sgstatd+18o .rodata:08049D53 6E 63 74 69 6F 6E 20 69+ db 'This function is protected!',0Ah,0 .rodata:08049D71 ; char aServerStarted_[] .rodata:08049D71 53 65 72 76 65 72 20 73+aServerStarted_ db 'Server started...',0 .rodata:08049D71 74 61 72 74 65 64 2E 2E+ ; DATA XREF: main+9o .rodata:08049D83 00 align 4 .rodata:08049D84 ; int domain .rodata:08049D84 02 00 00 00 domain dd 2 ; DATA XREF: sgnet_listen+4Ar .rodata:08049D84 ; sgnet_listen+74r ... .rodata:08049D88 ; char format[] .rodata:08049D88 55 6E 61 62 6C 65 20 74+format db 'Unable to set SIGCHLD handler',0 .rodata:08049D88 6F 20 73 65 74 20 53 49+ ; DATA XREF: sgnet_listen+2Do .rodata:08049DA6 ; char aUnableToCreate[] .rodata:08049DA6 55 6E 61 62 6C 65 20 74+aUnableToCreate db 'Unable to create socket',0 .rodata:08049DA6 6F 20 63 72 65 61 74 65+ ; DATA XREF: sgnet_listen+E7o .rodata:08049DBE 00 00 align 10h .rodata:08049DC0 ; char aUnableToSetSoc[] .rodata:08049DC0 55 6E 61 62 6C 65 20 74+aUnableToSetSoc db 'Unable to set socket reuse option',0 .rodata:08049DC0 6F 20 73 65 74 20 73 6F+ ; DATA XREF: sgnet_listen+131o .rodata:08049DE2 ; char aUnableToBindSo[] .rodata:08049DE2 55 6E 61 62 6C 65 20 74+aUnableToBindSo db 'Unable to bind socket',0 .rodata:08049DE2 6F 20 62 69 6E 64 20 73+ ; DATA XREF: sgnet_listen+18Do .rodata:08049DE2 6F 63 6B 65 74 00 ; sgnet_listen+24Fo .rodata:08049DF8 ; char aUnableToListen[] .rodata:08049DF8 55 6E 61 62 6C 65 20 74+aUnableToListen db 'Unable to listen on socket',0 .rodata:08049DF8 6F 20 6C 69 73 74 65 6E+ ; DATA XREF: sgnet_listen+28Ao .rodata:08049E13 ; char aUnableToFindUs[] .rodata:08049E13 55 6E 61 62 6C 65 20 74+aUnableToFindUs db 'Unable to find user',0 .rodata:08049E13 6F 20 66 69 6E 64 20 75+ ; DATA XREF: sgnet_privdrop+1Ao .rodata:08049E27 ; char path[] .rodata:08049E27 2F 76 61 72 2F 72 75 6E+path db '/var/run/sgstatd',0 ; DATA XREF: sgnet_privdrop:loc_80497AEo .rodata:08049E38 ; char aUnableToChange[] .rodata:08049E38 55 6E 61 62 6C 65 20 74+aUnableToChange db 'Unable to change directory to /var/run/sgstatd',0 .rodata:08049E38 6F 20 63 68 61 6E 67 65+ ; DATA XREF: sgnet_privdrop+3Eo .rodata:08049E67 ; char aUnableToRemove[] .rodata:08049E67 55 6E 61 62 6C 65 20 74+aUnableToRemove db 'Unable to remove extra groups',0 .rodata:08049E67 6F 20 72 65 6D 6F 76 65+ ; DATA XREF: sgnet_privdrop+6Ao .rodata:08049E85 ; char aUnableToChan_0[] .rodata:08049E85 55 6E 61 62 6C 65 20 74+aUnableToChan_0 db 'Unable to change GID',0 .rodata:08049E85 6F 20 63 68 61 6E 67 65+ ; DATA XREF: sgnet_privdrop+90o .rodata:08049E9A ; char aUnableToChan_1[] .rodata:08049E9A 55 6E 61 62 6C 65 20 74+aUnableToChan_1 db 'Unable to change UID',0 .rodata:08049E9A 6F 20 63 68 61 6E 67 65+ ; DATA XREF: sgnet_privdrop+B6o .rodata:08049EAF ; char file[] .rodata:08049EAF 2F 64 65 76 2F 75 72 61+file db '/dev/urandom',0 ; DATA XREF: sgnet_randfd+16o .rodata:08049EAF 6E 64 6F 6D 00 _rodata ends .rodata:08049EAF .eh_frame_hdr:08049EBC ; =========================================================================== .eh_frame_hdr:08049EBC .eh_frame_hdr:08049EBC ; Segment type: Pure data .eh_frame_hdr:08049EBC ; Segment permissions: Read .eh_frame_hdr:08049EBC _eh_frame_hdr segment dword public 'CONST' use32 .eh_frame_hdr:08049EBC assume cs:_eh_frame_hdr .eh_frame_hdr:08049EBC ;org 8049EBCh .eh_frame_hdr:08049EBC 01 db 1 .eh_frame_hdr:08049EBD 1B db 1Bh .eh_frame_hdr:08049EBE 03 db 3 .eh_frame_hdr:08049EBF 3B db 3Bh ; ; .eh_frame_hdr:08049EC0 78 db 78h ; x .eh_frame_hdr:08049EC1 00 db 0 .eh_frame_hdr:08049EC2 00 db 0 .eh_frame_hdr:08049EC3 00 db 0 .eh_frame_hdr:08049EC4 0E db 0Eh ; Nombre de structures à suivre probablement... .eh_frame_hdr:08049EC5 00 db 0 .eh_frame_hdr:08049EC6 00 db 0 .eh_frame_hdr:08049EC7 00 db 0 .eh_frame_hdr:08049EC8 84 db 84h ; ä ; 132 .eh_frame_hdr:08049EC9 EA db 0EAh ; Û ; 234 .eh_frame_hdr:08049ECA FF db 0FFh ; 255 .eh_frame_hdr:08049ECB FF db 0FFh ; 255 .eh_frame_hdr:08049ECC 94 db 94h ; ö ; 148 .eh_frame_hdr:08049ECD 00 db 0 .eh_frame_hdr:08049ECE 00 db 0 .eh_frame_hdr:08049ECF 00 db 0 .eh_frame_hdr:08049ED0 00 db 0 .eh_frame_hdr:08049ED1 EE db 0EEh ; ¯ ; 238 .eh_frame_hdr:08049ED2 FF db 0FFh ; 255 .eh_frame_hdr:08049ED3 FF db 0FFh ; 255 .eh_frame_hdr:08049ED4 B8 db 0B8h ; © ; 184 .eh_frame_hdr:08049ED5 00 db 0 .eh_frame_hdr:08049ED6 00 db 0 .eh_frame_hdr:08049ED7 00 db 0 .eh_frame_hdr:08049ED8 83 db 83h ; â ; 131 .eh_frame_hdr:08049ED9 F4 db 0F4h ; ¶ ; 244 .eh_frame_hdr:08049EDA FF db 0FFh ; 255 .eh_frame_hdr:08049EDB FF db 0FFh ; 255 .eh_frame_hdr:08049EDC D8 db 0D8h ; Ï ; 216 .eh_frame_hdr:08049EDD 00 db 0 .eh_frame_hdr:08049EDE 00 db 0 .eh_frame_hdr:08049EDF 00 db 0 .eh_frame_hdr:08049EE0 A1 db 0A1h ; í .eh_frame_hdr:08049EE1 F4 db 0F4h ; ¶ .eh_frame_hdr:08049EE2 FF db 0FFh .eh_frame_hdr:08049EE3 FF db 0FFh .eh_frame_hdr:08049EE4 F4 db 0F4h ; ¶ .eh_frame_hdr:08049EE5 00 db 0 .eh_frame_hdr:08049EE6 00 db 0 .eh_frame_hdr:08049EE7 00 db 0 .eh_frame_hdr:08049EE8 09 db 9 .eh_frame_hdr:08049EE9 F5 db 0F5h ; § .eh_frame_hdr:08049EEA FF db 0FFh .eh_frame_hdr:08049EEB FF db 0FFh .eh_frame_hdr:08049EEC 14 db 14h .eh_frame_hdr:08049EED 01 db 1 .eh_frame_hdr:08049EEE 00 db 0 .eh_frame_hdr:08049EEF 00 db 0 .eh_frame_hdr:08049EF0 64 db 64h ; d .eh_frame_hdr:08049EF1 F5 db 0F5h ; § .eh_frame_hdr:08049EF2 FF db 0FFh .eh_frame_hdr:08049EF3 FF db 0FFh .eh_frame_hdr:08049EF4 30 db 30h ; 0 .eh_frame_hdr:08049EF5 01 db 1 .eh_frame_hdr:08049EF6 00 db 0 .eh_frame_hdr:08049EF7 00 db 0 .eh_frame_hdr:08049EF8 07 db 7 .eh_frame_hdr:08049EF9 F8 db 0F8h ; ° .eh_frame_hdr:08049EFA FF db 0FFh .eh_frame_hdr:08049EFB FF db 0FFh .eh_frame_hdr:08049EFC 50 db 50h ; P .eh_frame_hdr:08049EFD 01 db 1 .eh_frame_hdr:08049EFE 00 db 0 .eh_frame_hdr:08049EFF 00 db 0 .eh_frame_hdr:08049F00 C4 db 0C4h ; - .eh_frame_hdr:08049F01 F8 db 0F8h ; ° .eh_frame_hdr:08049F02 FF db 0FFh .eh_frame_hdr:08049F03 FF db 0FFh .eh_frame_hdr:08049F04 6C db 6Ch ; l .eh_frame_hdr:08049F05 01 db 1 .eh_frame_hdr:08049F06 00 db 0 .eh_frame_hdr:08049F07 00 db 0 .eh_frame_hdr:08049F08 90 db 90h ; É .eh_frame_hdr:08049F09 F9 db 0F9h ; ¨ .eh_frame_hdr:08049F0A FF db 0FFh .eh_frame_hdr:08049F0B FF db 0FFh .eh_frame_hdr:08049F0C 8C db 8Ch ; î .eh_frame_hdr:08049F0D 01 db 1 .eh_frame_hdr:08049F0E 00 db 0 .eh_frame_hdr:08049F0F 00 db 0 .eh_frame_hdr:08049F10 4F db 4Fh ; O .eh_frame_hdr:08049F11 FA db 0FAh ; · .eh_frame_hdr:08049F12 FF db 0FFh .eh_frame_hdr:08049F13 FF db 0FFh .eh_frame_hdr:08049F14 AC db 0ACh ; ¼ .eh_frame_hdr:08049F15 01 db 1 .eh_frame_hdr:08049F16 00 db 0 .eh_frame_hdr:08049F17 00 db 0 .eh_frame_hdr:08049F18 C6 db 0C6h ; ã .eh_frame_hdr:08049F19 FA db 0FAh ; · .eh_frame_hdr:08049F1A FF db 0FFh .eh_frame_hdr:08049F1B FF db 0FFh .eh_frame_hdr:08049F1C CC db 0CCh ; ¦ .eh_frame_hdr:08049F1D 01 db 1 .eh_frame_hdr:08049F1E 00 db 0 .eh_frame_hdr:08049F1F 00 db 0 .eh_frame_hdr:08049F20 43 db 43h ; C .eh_frame_hdr:08049F21 FB db 0FBh ; ¹ .eh_frame_hdr:08049F22 FF db 0FFh .eh_frame_hdr:08049F23 FF db 0FFh .eh_frame_hdr:08049F24 EC db 0ECh ; ý .eh_frame_hdr:08049F25 01 db 1 .eh_frame_hdr:08049F26 00 db 0 .eh_frame_hdr:08049F27 00 db 0 .eh_frame_hdr:08049F28 6C db 6Ch ; l .eh_frame_hdr:08049F29 FB db 0FBh ; ¹ .eh_frame_hdr:08049F2A FF db 0FFh .eh_frame_hdr:08049F2B FF db 0FFh .eh_frame_hdr:08049F2C 0C db 0Ch .eh_frame_hdr:08049F2D 02 db 2 .eh_frame_hdr:08049F2E 00 db 0 .eh_frame_hdr:08049F2F 00 db 0 .eh_frame_hdr:08049F30 E5 db 0E5h ; Õ .eh_frame_hdr:08049F31 FB db 0FBh ; ¹ .eh_frame_hdr:08049F32 FF db 0FFh .eh_frame_hdr:08049F33 FF db 0FFh .eh_frame_hdr:08049F34 2C db 2Ch ; , .eh_frame_hdr:08049F35 02 db 2 .eh_frame_hdr:08049F36 00 db 0 .eh_frame_hdr:08049F37 00 db 0 .eh_frame_hdr:08049F37 _eh_frame_hdr ends .eh_frame_hdr:08049F37 .eh_frame:08049F38 ; =========================================================================== .eh_frame:08049F38 .eh_frame:08049F38 ; Segment type: Pure data .eh_frame:08049F38 ; Segment permissions: Read .eh_frame:08049F38 _eh_frame segment dword public 'CONST' use32 .eh_frame:08049F38 assume cs:_eh_frame .eh_frame:08049F38 ;org 8049F38h .eh_frame:08049F38 14 db 14h .eh_frame:08049F39 00 db 0 .eh_frame:08049F3A 00 db 0 .eh_frame:08049F3B 00 db 0 .eh_frame:08049F3C 00 db 0 .eh_frame:08049F3D 00 db 0 .eh_frame:08049F3E 00 db 0 .eh_frame:08049F3F 00 db 0 .eh_frame:08049F40 01 db 1 .eh_frame:08049F41 7A db 7Ah ; z .eh_frame:08049F42 52 db 52h ; R .eh_frame:08049F43 00 db 0 .eh_frame:08049F44 01 db 1 .eh_frame:08049F45 7C db 7Ch ; | .eh_frame:08049F46 08 db 8 .eh_frame:08049F47 01 db 1 .eh_frame:08049F48 1B db 1Bh .eh_frame:08049F49 0C db 0Ch .eh_frame:08049F4A 04 db 4 .eh_frame:08049F4B 04 db 4 .eh_frame:08049F4C 88 db 88h ; ê .eh_frame:08049F4D 01 db 1 .eh_frame:08049F4E 00 db 0 .eh_frame:08049F4F 00 db 0 .eh_frame:08049F50 20 db 20h .eh_frame:08049F51 00 db 0 .eh_frame:08049F52 00 db 0 .eh_frame:08049F53 00 db 0 .eh_frame:08049F54 1C db 1Ch .eh_frame:08049F55 00 db 0 .eh_frame:08049F56 00 db 0 .eh_frame:08049F57 00 db 0 .eh_frame:08049F58 E8 db 0E8h ; Þ .eh_frame:08049F59 E9 db 0E9h ; Ú .eh_frame:08049F5A FF db 0FFh .eh_frame:08049F5B FF db 0FFh .eh_frame:08049F5C 90 db 90h ; É .eh_frame:08049F5D 02 db 2 .eh_frame:08049F5E 00 db 0 .eh_frame:08049F5F 00 db 0 .eh_frame:08049F60 00 db 0 .eh_frame:08049F61 0E db 0Eh .eh_frame:08049F62 08 db 8 .eh_frame:08049F63 46 db 46h ; F .eh_frame:08049F64 0E db 0Eh .eh_frame:08049F65 0C db 0Ch .eh_frame:08049F66 4A db 4Ah ; J .eh_frame:08049F67 0F db 0Fh .eh_frame:08049F68 0B db 0Bh .eh_frame:08049F69 74 db 74h ; t .eh_frame:08049F6A 04 db 4 .eh_frame:08049F6B 78 db 78h ; x .eh_frame:08049F6C 00 db 0 .eh_frame:08049F6D 3F db 3Fh ; ? .eh_frame:08049F6E 1A db 1Ah .eh_frame:08049F6F 3B db 3Bh ; ; .eh_frame:08049F70 2A db 2Ah ; * .eh_frame:08049F71 32 db 32h ; 2 .eh_frame:08049F72 24 db 24h ; $ .eh_frame:08049F73 22 db 22h ; " .eh_frame:08049F74 1C db 1Ch .eh_frame:08049F75 00 db 0 .eh_frame:08049F76 00 db 0 .eh_frame:08049F77 00 db 0 .eh_frame:08049F78 40 db 40h ; @ .eh_frame:08049F79 00 db 0 .eh_frame:08049F7A 00 db 0 .eh_frame:08049F7B 00 db 0 .eh_frame:08049F7C 40 db 40h ; @ .eh_frame:08049F7D ED db 0EDh ; Ý .eh_frame:08049F7E FF db 0FFh .eh_frame:08049F7F FF db 0FFh .eh_frame:08049F80 83 db 83h ; â .eh_frame:08049F81 06 db 6 .eh_frame:08049F82 00 db 0 .eh_frame:08049F83 00 db 0 .eh_frame:08049F84 00 db 0 .eh_frame:08049F85 41 db 41h ; A .eh_frame:08049F86 0E db 0Eh .eh_frame:08049F87 08 db 8 .eh_frame:08049F88 85 db 85h ; à .eh_frame:08049F89 02 db 2 .eh_frame:08049F8A 42 db 42h ; B .eh_frame:08049F8B 0D db 0Dh .eh_frame:08049F8C 05 db 5 .eh_frame:08049F8D 03 db 3 .eh_frame:08049F8E 7F db 7Fh ; .eh_frame:08049F8F 06 db 6 .eh_frame:08049F90 C5 db 0C5h ; + .eh_frame:08049F91 0C db 0Ch .eh_frame:08049F92 04 db 4 .eh_frame:08049F93 04 db 4 .eh_frame:08049F94 18 db 18h .eh_frame:08049F95 00 db 0 .eh_frame:08049F96 00 db 0 .eh_frame:08049F97 00 db 0 .eh_frame:08049F98 60 db 60h ; ` .eh_frame:08049F99 00 db 0 .eh_frame:08049F9A 00 db 0 .eh_frame:08049F9B 00 db 0 .eh_frame:08049F9C A3 db 0A3h ; ú .eh_frame:08049F9D F3 db 0F3h ; ¾ .eh_frame:08049F9E FF db 0FFh .eh_frame:08049F9F FF db 0FFh .eh_frame:08049FA0 1E db 1Eh .eh_frame:08049FA1 00 db 0 .eh_frame:08049FA2 00 db 0 .eh_frame:08049FA3 00 db 0 .eh_frame:08049FA4 00 db 0 .eh_frame:08049FA5 41 db 41h ; A .eh_frame:08049FA6 0E db 0Eh .eh_frame:08049FA7 08 db 8 .eh_frame:08049FA8 85 db 85h ; à .eh_frame:08049FA9 02 db 2 .eh_frame:08049FAA 42 db 42h ; B .eh_frame:08049FAB 0D db 0Dh .eh_frame:08049FAC 05 db 5 .eh_frame:08049FAD 00 db 0 .eh_frame:08049FAE 00 db 0 .eh_frame:08049FAF 00 db 0 .eh_frame:08049FB0 1C db 1Ch .eh_frame:08049FB1 00 db 0 .eh_frame:08049FB2 00 db 0 .eh_frame:08049FB3 00 db 0 .eh_frame:08049FB4 7C db 7Ch ; | .eh_frame:08049FB5 00 db 0 .eh_frame:08049FB6 00 db 0 .eh_frame:08049FB7 00 db 0 .eh_frame:08049FB8 A5 db 0A5h ; Ñ .eh_frame:08049FB9 F3 db 0F3h ; ¾ .eh_frame:08049FBA FF db 0FFh .eh_frame:08049FBB FF db 0FFh .eh_frame:08049FBC 68 db 68h ; h .eh_frame:08049FBD 00 db 0 .eh_frame:08049FBE 00 db 0 .eh_frame:08049FBF 00 db 0 .eh_frame:08049FC0 00 db 0 .eh_frame:08049FC1 41 db 41h ; A .eh_frame:08049FC2 0E db 0Eh .eh_frame:08049FC3 08 db 8 .eh_frame:08049FC4 85 db 85h ; à .eh_frame:08049FC5 02 db 2 .eh_frame:08049FC6 42 db 42h ; B .eh_frame:08049FC7 0D db 0Dh .eh_frame:08049FC8 05 db 5 .eh_frame:08049FC9 02 db 2 .eh_frame:08049FCA 64 db 64h ; d .eh_frame:08049FCB C5 db 0C5h ; + .eh_frame:08049FCC 0C db 0Ch .eh_frame:08049FCD 04 db 4 .eh_frame:08049FCE 04 db 4 .eh_frame:08049FCF 00 db 0 .eh_frame:08049FD0 18 db 18h .eh_frame:08049FD1 00 db 0 .eh_frame:08049FD2 00 db 0 .eh_frame:08049FD3 00 db 0 .eh_frame:08049FD4 9C db 9Ch ; £ .eh_frame:08049FD5 00 db 0 .eh_frame:08049FD6 00 db 0 .eh_frame:08049FD7 00 db 0 .eh_frame:08049FD8 ED db 0EDh ; Ý .eh_frame:08049FD9 F3 db 0F3h ; ¾ .eh_frame:08049FDA FF db 0FFh .eh_frame:08049FDB FF db 0FFh .eh_frame:08049FDC 58 db 58h ; X .eh_frame:08049FDD 00 db 0 .eh_frame:08049FDE 00 db 0 .eh_frame:08049FDF 00 db 0 .eh_frame:08049FE0 00 db 0 .eh_frame:08049FE1 41 db 41h ; A .eh_frame:08049FE2 0E db 0Eh .eh_frame:08049FE3 08 db 8 .eh_frame:08049FE4 85 db 85h ; à .eh_frame:08049FE5 02 db 2 .eh_frame:08049FE6 42 db 42h ; B .eh_frame:08049FE7 0D db 0Dh .eh_frame:08049FE8 05 db 5 .eh_frame:08049FE9 00 db 0 .eh_frame:08049FEA 00 db 0 .eh_frame:08049FEB 00 db 0 .eh_frame:08049FEC 1C db 1Ch .eh_frame:08049FED 00 db 0 .eh_frame:08049FEE 00 db 0 .eh_frame:08049FEF 00 db 0 .eh_frame:08049FF0 B8 db 0B8h ; © .eh_frame:08049FF1 00 db 0 .eh_frame:08049FF2 00 db 0 .eh_frame:08049FF3 00 db 0 .eh_frame:08049FF4 2C db 2Ch ; , .eh_frame:08049FF5 F4 db 0F4h ; ¶ .eh_frame:08049FF6 FF db 0FFh .eh_frame:08049FF7 FF db 0FFh .eh_frame:08049FF8 A3 db 0A3h ; ú .eh_frame:08049FF9 02 db 2 .eh_frame:08049FFA 00 db 0 .eh_frame:08049FFB 00 db 0 .eh_frame:08049FFC 00 db 0 .eh_frame:08049FFD 41 db 41h ; A .eh_frame:08049FFE 0E db 0Eh .eh_frame:08049FFF 08 db 8 .eh_frame:0804A000 85 db 85h ; à .eh_frame:0804A001 02 db 2 .eh_frame:0804A002 42 db 42h ; B .eh_frame:0804A003 0D db 0Dh .eh_frame:0804A004 05 db 5 .eh_frame:0804A005 03 db 3 .eh_frame:0804A006 9F db 9Fh ; ƒ .eh_frame:0804A007 02 db 2 .eh_frame:0804A008 C5 db 0C5h ; + .eh_frame:0804A009 0C db 0Ch .eh_frame:0804A00A 04 db 4 .eh_frame:0804A00B 04 db 4 .eh_frame:0804A00C 18 db 18h .eh_frame:0804A00D 00 db 0 .eh_frame:0804A00E 00 db 0 .eh_frame:0804A00F 00 db 0 .eh_frame:0804A010 D8 db 0D8h ; Ï .eh_frame:0804A011 00 db 0 .eh_frame:0804A012 00 db 0 .eh_frame:0804A013 00 db 0 .eh_frame:0804A014 AF db 0AFh ; » .eh_frame:0804A015 F6 db 0F6h ; ÷ .eh_frame:0804A016 FF db 0FFh .eh_frame:0804A017 FF db 0FFh .eh_frame:0804A018 BD db 0BDh ; ¢ .eh_frame:0804A019 00 db 0 .eh_frame:0804A01A 00 db 0 .eh_frame:0804A01B 00 db 0 .eh_frame:0804A01C 00 db 0 .eh_frame:0804A01D 41 db 41h ; A .eh_frame:0804A01E 0E db 0Eh .eh_frame:0804A01F 08 db 8 .eh_frame:0804A020 85 db 85h ; à .eh_frame:0804A021 02 db 2 .eh_frame:0804A022 42 db 42h ; B .eh_frame:0804A023 0D db 0Dh .eh_frame:0804A024 05 db 5 .eh_frame:0804A025 00 db 0 .eh_frame:0804A026 00 db 0 .eh_frame:0804A027 00 db 0 .eh_frame:0804A028 1C db 1Ch .eh_frame:0804A029 00 db 0 .eh_frame:0804A02A 00 db 0 .eh_frame:0804A02B 00 db 0 .eh_frame:0804A02C F4 db 0F4h ; ¶ .eh_frame:0804A02D 00 db 0 .eh_frame:0804A02E 00 db 0 .eh_frame:0804A02F 00 db 0 .eh_frame:0804A030 50 db 50h ; P .eh_frame:0804A031 F7 db 0F7h ; ¸ .eh_frame:0804A032 FF db 0FFh .eh_frame:0804A033 FF db 0FFh .eh_frame:0804A034 CC db 0CCh ; ¦ .eh_frame:0804A035 00 db 0 .eh_frame:0804A036 00 db 0 .eh_frame:0804A037 00 db 0 .eh_frame:0804A038 00 db 0 .eh_frame:0804A039 41 db 41h ; A .eh_frame:0804A03A 0E db 0Eh .eh_frame:0804A03B 08 db 8 .eh_frame:0804A03C 85 db 85h ; à .eh_frame:0804A03D 02 db 2 .eh_frame:0804A03E 42 db 42h ; B .eh_frame:0804A03F 0D db 0Dh .eh_frame:0804A040 05 db 5 .eh_frame:0804A041 02 db 2 .eh_frame:0804A042 C8 db 0C8h ; + .eh_frame:0804A043 C5 db 0C5h ; + .eh_frame:0804A044 0C db 0Ch .eh_frame:0804A045 04 db 4 .eh_frame:0804A046 04 db 4 .eh_frame:0804A047 00 db 0 .eh_frame:0804A048 1C db 1Ch .eh_frame:0804A049 00 db 0 .eh_frame:0804A04A 00 db 0 .eh_frame:0804A04B 00 db 0 .eh_frame:0804A04C 14 db 14h .eh_frame:0804A04D 01 db 1 .eh_frame:0804A04E 00 db 0 .eh_frame:0804A04F 00 db 0 .eh_frame:0804A050 FC db 0FCh ; ³ .eh_frame:0804A051 F7 db 0F7h ; ¸ .eh_frame:0804A052 FF db 0FFh .eh_frame:0804A053 FF db 0FFh .eh_frame:0804A054 BF db 0BFh ; + .eh_frame:0804A055 00 db 0 .eh_frame:0804A056 00 db 0 .eh_frame:0804A057 00 db 0 .eh_frame:0804A058 00 db 0 .eh_frame:0804A059 41 db 41h ; A .eh_frame:0804A05A 0E db 0Eh .eh_frame:0804A05B 08 db 8 .eh_frame:0804A05C 85 db 85h ; à .eh_frame:0804A05D 02 db 2 .eh_frame:0804A05E 42 db 42h ; B .eh_frame:0804A05F 0D db 0Dh .eh_frame:0804A060 05 db 5 .eh_frame:0804A061 02 db 2 .eh_frame:0804A062 BB db 0BBh ; + .eh_frame:0804A063 C5 db 0C5h ; + .eh_frame:0804A064 0C db 0Ch .eh_frame:0804A065 04 db 4 .eh_frame:0804A066 04 db 4 .eh_frame:0804A067 00 db 0 .eh_frame:0804A068 1C db 1Ch .eh_frame:0804A069 00 db 0 .eh_frame:0804A06A 00 db 0 .eh_frame:0804A06B 00 db 0 .eh_frame:0804A06C 34 db 34h ; 4 .eh_frame:0804A06D 01 db 1 .eh_frame:0804A06E 00 db 0 .eh_frame:0804A06F 00 db 0 .eh_frame:0804A070 9B db 9Bh ; ø .eh_frame:0804A071 F8 db 0F8h ; ° .eh_frame:0804A072 FF db 0FFh .eh_frame:0804A073 FF db 0FFh .eh_frame:0804A074 77 db 77h ; w .eh_frame:0804A075 00 db 0 .eh_frame:0804A076 00 db 0 .eh_frame:0804A077 00 db 0 .eh_frame:0804A078 00 db 0 .eh_frame:0804A079 41 db 41h ; A .eh_frame:0804A07A 0E db 0Eh .eh_frame:0804A07B 08 db 8 .eh_frame:0804A07C 85 db 85h ; à .eh_frame:0804A07D 02 db 2 .eh_frame:0804A07E 42 db 42h ; B .eh_frame:0804A07F 0D db 0Dh .eh_frame:0804A080 05 db 5 .eh_frame:0804A081 02 db 2 .eh_frame:0804A082 73 db 73h ; s .eh_frame:0804A083 C5 db 0C5h ; + .eh_frame:0804A084 0C db 0Ch .eh_frame:0804A085 04 db 4 .eh_frame:0804A086 04 db 4 .eh_frame:0804A087 00 db 0 .eh_frame:0804A088 1C db 1Ch .eh_frame:0804A089 00 db 0 .eh_frame:0804A08A 00 db 0 .eh_frame:0804A08B 00 db 0 .eh_frame:0804A08C 54 db 54h ; T .eh_frame:0804A08D 01 db 1 .eh_frame:0804A08E 00 db 0 .eh_frame:0804A08F 00 db 0 .eh_frame:0804A090 F2 db 0F2h ; = .eh_frame:0804A091 F8 db 0F8h ; ° .eh_frame:0804A092 FF db 0FFh .eh_frame:0804A093 FF db 0FFh .eh_frame:0804A094 7D db 7Dh ; } .eh_frame:0804A095 00 db 0 .eh_frame:0804A096 00 db 0 .eh_frame:0804A097 00 db 0 .eh_frame:0804A098 00 db 0 .eh_frame:0804A099 41 db 41h ; A .eh_frame:0804A09A 0E db 0Eh .eh_frame:0804A09B 08 db 8 .eh_frame:0804A09C 85 db 85h ; à .eh_frame:0804A09D 02 db 2 .eh_frame:0804A09E 42 db 42h ; B .eh_frame:0804A09F 0D db 0Dh .eh_frame:0804A0A0 05 db 5 .eh_frame:0804A0A1 02 db 2 .eh_frame:0804A0A2 79 db 79h ; y .eh_frame:0804A0A3 C5 db 0C5h ; + .eh_frame:0804A0A4 0C db 0Ch .eh_frame:0804A0A5 04 db 4 .eh_frame:0804A0A6 04 db 4 .eh_frame:0804A0A7 00 db 0 .eh_frame:0804A0A8 1C db 1Ch .eh_frame:0804A0A9 00 db 0 .eh_frame:0804A0AA 00 db 0 .eh_frame:0804A0AB 00 db 0 .eh_frame:0804A0AC 74 db 74h ; t .eh_frame:0804A0AD 01 db 1 .eh_frame:0804A0AE 00 db 0 .eh_frame:0804A0AF 00 db 0 .eh_frame:0804A0B0 4F db 4Fh ; O .eh_frame:0804A0B1 F9 db 0F9h ; ¨ .eh_frame:0804A0B2 FF db 0FFh .eh_frame:0804A0B3 FF db 0FFh .eh_frame:0804A0B4 29 db 29h ; ) .eh_frame:0804A0B5 00 db 0 .eh_frame:0804A0B6 00 db 0 .eh_frame:0804A0B7 00 db 0 .eh_frame:0804A0B8 00 db 0 .eh_frame:0804A0B9 41 db 41h ; A .eh_frame:0804A0BA 0E db 0Eh .eh_frame:0804A0BB 08 db 8 .eh_frame:0804A0BC 85 db 85h ; à .eh_frame:0804A0BD 02 db 2 .eh_frame:0804A0BE 42 db 42h ; B .eh_frame:0804A0BF 0D db 0Dh .eh_frame:0804A0C0 05 db 5 .eh_frame:0804A0C1 65 db 65h ; e .eh_frame:0804A0C2 C5 db 0C5h ; + .eh_frame:0804A0C3 0C db 0Ch .eh_frame:0804A0C4 04 db 4 .eh_frame:0804A0C5 04 db 4 .eh_frame:0804A0C6 00 db 0 .eh_frame:0804A0C7 00 db 0 .eh_frame:0804A0C8 1C db 1Ch .eh_frame:0804A0C9 00 db 0 .eh_frame:0804A0CA 00 db 0 .eh_frame:0804A0CB 00 db 0 .eh_frame:0804A0CC 94 db 94h ; ö .eh_frame:0804A0CD 01 db 1 .eh_frame:0804A0CE 00 db 0 .eh_frame:0804A0CF 00 db 0 .eh_frame:0804A0D0 58 db 58h ; X .eh_frame:0804A0D1 F9 db 0F9h ; ¨ .eh_frame:0804A0D2 FF db 0FFh .eh_frame:0804A0D3 FF db 0FFh .eh_frame:0804A0D4 79 db 79h ; y .eh_frame:0804A0D5 00 db 0 .eh_frame:0804A0D6 00 db 0 .eh_frame:0804A0D7 00 db 0 .eh_frame:0804A0D8 00 db 0 .eh_frame:0804A0D9 41 db 41h ; A .eh_frame:0804A0DA 0E db 0Eh .eh_frame:0804A0DB 08 db 8 .eh_frame:0804A0DC 85 db 85h ; à .eh_frame:0804A0DD 02 db 2 .eh_frame:0804A0DE 42 db 42h ; B .eh_frame:0804A0DF 0D db 0Dh .eh_frame:0804A0E0 05 db 5 .eh_frame:0804A0E1 02 db 2 .eh_frame:0804A0E2 75 db 75h ; u .eh_frame:0804A0E3 C5 db 0C5h ; + .eh_frame:0804A0E4 0C db 0Ch .eh_frame:0804A0E5 04 db 4 .eh_frame:0804A0E6 04 db 4 .eh_frame:0804A0E7 00 db 0 .eh_frame:0804A0E8 1C db 1Ch .eh_frame:0804A0E9 00 db 0 .eh_frame:0804A0EA 00 db 0 .eh_frame:0804A0EB 00 db 0 .eh_frame:0804A0EC B4 db 0B4h ; ¦ .eh_frame:0804A0ED 01 db 1 .eh_frame:0804A0EE 00 db 0 .eh_frame:0804A0EF 00 db 0 .eh_frame:0804A0F0 B1 db 0B1h ; ¦ .eh_frame:0804A0F1 F9 db 0F9h ; ¨ .eh_frame:0804A0F2 FF db 0FFh .eh_frame:0804A0F3 FF db 0FFh .eh_frame:0804A0F4 73 db 73h ; s .eh_frame:0804A0F5 00 db 0 .eh_frame:0804A0F6 00 db 0 .eh_frame:0804A0F7 00 db 0 .eh_frame:0804A0F8 00 db 0 .eh_frame:0804A0F9 41 db 41h ; A .eh_frame:0804A0FA 0E db 0Eh .eh_frame:0804A0FB 08 db 8 .eh_frame:0804A0FC 85 db 85h ; à .eh_frame:0804A0FD 02 db 2 .eh_frame:0804A0FE 42 db 42h ; B .eh_frame:0804A0FF 0D db 0Dh .eh_frame:0804A100 05 db 5 .eh_frame:0804A101 02 db 2 .eh_frame:0804A102 6F db 6Fh ; o .eh_frame:0804A103 C5 db 0C5h ; + .eh_frame:0804A104 0C db 0Ch .eh_frame:0804A105 04 db 4 .eh_frame:0804A106 04 db 4 .eh_frame:0804A107 00 db 0 .eh_frame:0804A108 00 __FRAME_END__ db 0 .eh_frame:0804A109 00 db 0 .eh_frame:0804A10A 00 db 0 .eh_frame:0804A10B 00 db 0 .eh_frame:0804A10B _eh_frame ends .eh_frame:0804A10B .init_array:0804B10C ; =========================================================================== .init_array:0804B10C .init_array:0804B10C ; Segment type: Pure data .init_array:0804B10C ; Segment permissions: Read/Write .init_array:0804B10C _init_array segment dword public 'DATA' use32 .init_array:0804B10C assume cs:_init_array .init_array:0804B10C ;org 804B10Ch .init_array:0804B10C 90 8C 04 08 __frame_dummy_init_array_entry dd offset frame_dummy .init_array:0804B10C ; DATA XREF: __libc_csu_init+1Fo .init_array:0804B10C ; __libc_csu_init+44r .init_array:0804B10C _init_array ends ; Alternative name is '__init_array_start' .init_array:0804B10C .fini_array:0804B110 ; =========================================================================== .fini_array:0804B110 .fini_array:0804B110 ; Segment type: Pure data .fini_array:0804B110 ; Segment permissions: Read/Write .fini_array:0804B110 _fini_array segment dword public 'DATA' use32 .fini_array:0804B110 assume cs:_fini_array .fini_array:0804B110 ;org 804B110h .fini_array:0804B110 70 8C 04 08 __do_global_dtors_aux_fini_array_entry dd offset __do_global_dtors_aux .fini_array:0804B110 ; DATA XREF: __libc_csu_init+19o .fini_array:0804B110 _fini_array ends ; Alternative name is '__init_array_end' .fini_array:0804B110 .jcr:0804B114 ; =========================================================================== .jcr:0804B114 .jcr:0804B114 ; Segment type: Pure data .jcr:0804B114 ; Segment permissions: Read/Write .jcr:0804B114 _jcr segment dword public 'DATA' use32 .jcr:0804B114 assume cs:_jcr .jcr:0804B114 ;org 804B114h .jcr:0804B114 00 00 00 00 __JCR_LIST__ dd 0 ; DATA XREF: frame_dummyr .jcr:0804B114 ; frame_dummy+18o .jcr:0804B114 _jcr ends .jcr:0804B114 .got:0804B208 ; =========================================================================== .got:0804B208 .got:0804B208 ; Segment type: Pure data .got:0804B208 ; Segment permissions: Read/Write .got:0804B208 _got segment dword public 'DATA' use32 .got:0804B208 assume cs:_got .got:0804B208 ;org 804B208h .got:0804B208 44 B4 04 08 __gmon_start___ptr dd offset __gmon_start__ .got:0804B208 ; DATA XREF: _init_proc+13r .got:0804B208 _got ends .got:0804B208 .got.plt:0804B20C ; =========================================================================== .got.plt:0804B20C .got.plt:0804B20C ; Segment type: Pure data .got.plt:0804B20C ; Segment permissions: Read/Write .got.plt:0804B20C _got_plt segment dword public 'DATA' use32 .got.plt:0804B20C assume cs:_got_plt .got.plt:0804B20C ;org 804B20Ch .got.plt:0804B20C ?? _GLOBAL_OFFSET_TABLE_ db ? ; .got.plt:0804B20D ?? db ? ; .got.plt:0804B20E ?? db ? ; .got.plt:0804B20F ?? db ? ; .got.plt:0804B210 ?? db ? ; .got.plt:0804B211 ?? db ? ; .got.plt:0804B212 ?? db ? ; .got.plt:0804B213 ?? db ? ; .got.plt:0804B214 ?? db ? ; .got.plt:0804B215 ?? db ? ; .got.plt:0804B216 ?? db ? ; .got.plt:0804B217 ?? db ? ; .got.plt:0804B218 A4 B3 04 08 off_804B218 dd offset setsockopt ; DATA XREF: _setsockoptr .got.plt:0804B21C A8 B3 04 08 off_804B21C dd offset getpwnam ; DATA XREF: _getpwnamr .got.plt:0804B220 AC B3 04 08 off_804B220 dd offset dup2 ; DATA XREF: _dup2r .got.plt:0804B224 B0 B3 04 08 off_804B224 dd offset strcmp ; DATA XREF: _strcmpr .got.plt:0804B228 B4 B3 04 08 off_804B228 dd offset read ; DATA XREF: _readr .got.plt:0804B22C B8 B3 04 08 off_804B22C dd offset fflush ; DATA XREF: _fflushr .got.plt:0804B230 BC B3 04 08 off_804B230 dd offset free ; DATA XREF: _freer .got.plt:0804B234 C0 B3 04 08 off_804B234 dd offset fgets ; DATA XREF: _fgetsr .got.plt:0804B238 C4 B3 04 08 off_804B238 dd offset time ; DATA XREF: _timer .got.plt:0804B23C C8 B3 04 08 off_804B23C dd offset signal ; DATA XREF: _signalr .got.plt:0804B240 CC B3 04 08 off_804B240 dd offset chdir ; DATA XREF: _chdirr .got.plt:0804B244 D0 B3 04 08 off_804B244 dd offset alarm ; DATA XREF: _alarmr .got.plt:0804B248 D4 B3 04 08 off_804B248 dd offset popen ; DATA XREF: _popenr .got.plt:0804B24C D8 B3 04 08 off_804B24C dd offset htons ; DATA XREF: _htonsr .got.plt:0804B250 DC B3 04 08 off_804B250 dd offset setgroups ; DATA XREF: _setgroupsr .got.plt:0804B254 E0 B3 04 08 off_804B254 dd offset accept ; DATA XREF: _acceptr .got.plt:0804B258 E4 B3 04 08 off_804B258 dd offset usleep ; DATA XREF: _usleepr .got.plt:0804B25C E8 B3 04 08 off_804B25C dd offset setgid ; DATA XREF: _setgidr .got.plt:0804B260 EC B3 04 08 off_804B260 dd offset puts ; DATA XREF: _putsr .got.plt:0804B264 F0 B3 04 08 off_804B264 dd offset getdtablesize ; DATA XREF: _getdtablesizer .got.plt:0804B268 44 B4 04 08 off_804B268 dd offset __gmon_start__ .got.plt:0804B268 ; DATA XREF: ___gmon_start__r .got.plt:0804B26C F4 B3 04 08 off_804B26C dd offset exit ; DATA XREF: _exitr .got.plt:0804B270 F8 B3 04 08 off_804B270 dd offset open ; DATA XREF: _openr .got.plt:0804B274 FC B3 04 08 off_804B274 dd offset srand ; DATA XREF: _srandr .got.plt:0804B278 00 B4 04 08 off_804B278 dd offset strlen ; DATA XREF: _strlenr .got.plt:0804B27C 04 B4 04 08 off_804B27C dd offset __libc_start_main .got.plt:0804B27C ; DATA XREF: ___libc_start_mainr .got.plt:0804B280 08 B4 04 08 off_804B280 dd offset write ; DATA XREF: _writer .got.plt:0804B284 0C B4 04 08 off_804B284 dd offset vasprintf ; DATA XREF: _vasprintfr .got.plt:0804B288 10 B4 04 08 off_804B288 dd offset bind ; DATA XREF: _bindr .got.plt:0804B28C 14 B4 04 08 off_804B28C dd offset getifaddrs ; DATA XREF: _getifaddrsr .got.plt:0804B290 18 B4 04 08 off_804B290 dd offset rand ; DATA XREF: _randr .got.plt:0804B294 1C B4 04 08 off_804B294 dd offset freeifaddrs ; DATA XREF: _freeifaddrsr .got.plt:0804B298 20 B4 04 08 off_804B298 dd offset fork ; DATA XREF: _forkr .got.plt:0804B29C 24 B4 04 08 off_804B29C dd offset errx ; DATA XREF: _errxr .got.plt:0804B2A0 28 B4 04 08 off_804B2A0 dd offset listen ; DATA XREF: _listenr .got.plt:0804B2A4 2C B4 04 08 off_804B2A4 dd offset setuid ; DATA XREF: _setuidr .got.plt:0804B2A8 30 B4 04 08 off_804B2A8 dd offset socket ; DATA XREF: _socketr .got.plt:0804B2AC 34 B4 04 08 off_804B2AC dd offset shutdown ; DATA XREF: _shutdownr .got.plt:0804B2B0 38 B4 04 08 off_804B2B0 dd offset recv ; DATA XREF: _recvr .got.plt:0804B2B4 3C B4 04 08 off_804B2B4 dd offset close ; DATA XREF: _closer .got.plt:0804B2B4 _got_plt ends .got.plt:0804B2B4 .data:0804B2B8 ; =========================================================================== .data:0804B2B8 .data:0804B2B8 ; Segment type: Pure data .data:0804B2B8 ; Segment permissions: Read/Write .data:0804B2B8 _data segment dword public 'DATA' use32 .data:0804B2B8 assume cs:_data .data:0804B2B8 ;org 804B2B8h .data:0804B2B8 public __data_start ; weak .data:0804B2B8 00 __data_start db 0 ; Alternative name is '__data_start' .data:0804B2B8 ; data_start .data:0804B2B9 00 db 0 .data:0804B2BA 00 db 0 .data:0804B2BB 00 db 0 .data:0804B2BC public __dso_handle .data:0804B2BC 00 __dso_handle db 0 .data:0804B2BD 00 db 0 .data:0804B2BE 00 db 0 .data:0804B2BF 00 db 0 .data:0804B2C0 public USER .data:0804B2C0 ; char *USER .data:0804B2C0 B0 9B 04 08 USER dd offset aNobody ; DATA XREF: main+3Br .data:0804B2C0 _data ends ; "nobody" .data:0804B2C0 .bss:0804B2E0 ; =========================================================================== .bss:0804B2E0 .bss:0804B2E0 ; Segment type: Uninitialized .bss:0804B2E0 ; Segment permissions: Read/Write .bss:0804B2E0 ; Segment alignment '32byte' can not be represented in assembly .bss:0804B2E0 _bss segment para public 'BSS' use32 .bss:0804B2E0 assume cs:_bss .bss:0804B2E0 ;org 804B2E0h .bss:0804B2E0 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .bss:0804B2E0 public stdin@@GLIBC_2_0 .bss:0804B2E0 ; FILE *stdin .bss:0804B2E0 ?? ?? ?? ?? stdin@@GLIBC_2_0 dd ? ; DATA XREF: child_main+620r .bss:0804B2E0 ; sgstatd+2Br .bss:0804B2E0 ; Alternative name is 'stdin' .bss:0804B2E0 ; Copy of shared data .bss:0804B2E4 ?? ?? ?? ?? ?? ?? ?? ??+ align 20h .bss:0804B300 public stdout@@GLIBC_2_0 .bss:0804B300 ; FILE *stdout .bss:0804B300 ?? ?? ?? ?? stdout@@GLIBC_2_0 dd ? ; DATA XREF: child_main+A3r .bss:0804B300 ; Alternative name is 'stdout' .bss:0804B300 ; Copy of shared data .bss:0804B304 ?? completed_5730 db ? ; DATA XREF: __do_global_dtors_auxr .bss:0804B304 ; __do_global_dtors_aux+14w .bss:0804B305 ?? ?? ?? align 4 .bss:0804B305 _bss ends .bss:0804B305 extern:0804B308 ; =========================================================================== extern:0804B308 extern:0804B308 ; Segment type: Externs extern:0804B308 ; extern extern:0804B308 00 00 00 00 extrn setsockopt@@GLIBC_2_0:near extern:0804B30C 00 00 00 00 extrn getpwnam@@GLIBC_2_0:near extern:0804B310 00 00 00 00 extrn dup2@@GLIBC_2_0:near extern:0804B314 00 00 00 00 extrn strcmp@@GLIBC_2_0:near extern:0804B318 00 00 00 00 extrn read@@GLIBC_2_0:near extern:0804B31C 00 00 00 00 extrn fflush@@GLIBC_2_0:near extern:0804B320 00 00 00 00 extrn free@@GLIBC_2_0:near extern:0804B324 00 00 00 00 extrn fgets@@GLIBC_2_0:near extern:0804B328 00 00 00 00 extrn time@@GLIBC_2_0:near extern:0804B32C 00 00 00 00 extrn signal@@GLIBC_2_0:near extern:0804B330 00 00 00 00 extrn chdir@@GLIBC_2_0:near extern:0804B334 00 00 00 00 extrn alarm@@GLIBC_2_0:near extern:0804B338 00 00 00 00 extrn popen@@GLIBC_2_1:near extern:0804B33C 00 00 00 00 extrn htons@@GLIBC_2_0:near extern:0804B340 00 00 00 00 extrn setgroups@@GLIBC_2_0:near extern:0804B344 00 00 00 00 extrn accept@@GLIBC_2_0:near extern:0804B348 00 00 00 00 extrn usleep@@GLIBC_2_0:near extern:0804B34C 00 00 00 00 extrn setgid@@GLIBC_2_0:near extern:0804B350 00 00 00 00 extrn puts@@GLIBC_2_0:near extern:0804B354 00 00 00 00 extrn getdtablesize@@GLIBC_2_0:near extern:0804B358 00 00 00 00 extrn exit@@GLIBC_2_0:near extern:0804B35C 00 00 00 00 extrn open@@GLIBC_2_0:near extern:0804B360 00 00 00 00 extrn srand@@GLIBC_2_0:near extern:0804B364 00 00 00 00 extrn strlen@@GLIBC_2_0:near extern:0804B368 00 00 00 00 extrn __libc_start_main@@GLIBC_2_0:near extern:0804B36C 00 00 00 00 extrn write@@GLIBC_2_0:near extern:0804B370 00 00 00 00 extrn vasprintf@@GLIBC_2_0:near extern:0804B374 00 00 00 00 extrn bind@@GLIBC_2_0:near extern:0804B378 00 00 00 00 extrn getifaddrs@@GLIBC_2_3:near extern:0804B37C 00 00 00 00 extrn rand@@GLIBC_2_0:near extern:0804B380 00 00 00 00 extrn freeifaddrs@@GLIBC_2_3:near extern:0804B384 00 00 00 00 extrn fork@@GLIBC_2_0:near extern:0804B388 00 00 00 00 extrn errx@@GLIBC_2_0:near extern:0804B38C 00 00 00 00 extrn listen@@GLIBC_2_0:near extern:0804B390 00 00 00 00 extrn setuid@@GLIBC_2_0:near extern:0804B394 00 00 00 00 extrn socket@@GLIBC_2_0:near extern:0804B398 00 00 00 00 extrn shutdown@@GLIBC_2_0:near extern:0804B39C 00 00 00 00 extrn recv@@GLIBC_2_0:near extern:0804B3A0 00 00 00 00 extrn close@@GLIBC_2_0:near extern:0804B3A4 ; int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen) extern:0804B3A4 00 00 00 00 extrn setsockopt:near ; CODE XREF: _setsockoptj extern:0804B3A4 ; DATA XREF: .got.plt:off_804B218o extern:0804B3A8 ; struct passwd *getpwnam(const char *name) extern:0804B3A8 00 00 00 00 extrn getpwnam:near ; CODE XREF: _getpwnamj extern:0804B3A8 ; DATA XREF: .got.plt:off_804B21Co extern:0804B3AC ; int dup2(int fd, int fd2) extern:0804B3AC 00 00 00 00 extrn dup2:near ; CODE XREF: _dup2j extern:0804B3AC ; DATA XREF: .got.plt:off_804B220o extern:0804B3B0 ; int strcmp(const char *s1, const char *s2) extern:0804B3B0 00 00 00 00 extrn strcmp:near ; CODE XREF: _strcmpj extern:0804B3B0 ; DATA XREF: .got.plt:off_804B224o extern:0804B3B4 ; ssize_t read(int fd, void *buf, size_t nbytes) extern:0804B3B4 00 00 00 00 extrn read:near ; CODE XREF: _readj extern:0804B3B4 ; DATA XREF: .got.plt:off_804B228o extern:0804B3B8 ; int fflush(FILE *stream) extern:0804B3B8 00 00 00 00 extrn fflush:near ; CODE XREF: _fflushj extern:0804B3B8 ; DATA XREF: .got.plt:off_804B22Co extern:0804B3BC ; void free(void *ptr) extern:0804B3BC 00 00 00 00 extrn free:near ; CODE XREF: _freej extern:0804B3BC ; DATA XREF: .got.plt:off_804B230o extern:0804B3C0 ; char *fgets(char *s, int n, FILE *stream) extern:0804B3C0 00 00 00 00 extrn fgets:near ; CODE XREF: _fgetsj extern:0804B3C0 ; DATA XREF: .got.plt:off_804B234o extern:0804B3C4 ; time_t time(time_t *timer) extern:0804B3C4 00 00 00 00 extrn time:near ; CODE XREF: _timej extern:0804B3C4 ; DATA XREF: .got.plt:off_804B238o extern:0804B3C8 ; __sighandler_t signal(int sig, __sighandler_t handler) extern:0804B3C8 00 00 00 00 extrn signal:near ; CODE XREF: _signalj extern:0804B3C8 ; DATA XREF: .got.plt:off_804B23Co extern:0804B3CC ; int chdir(const char *path) extern:0804B3CC 00 00 00 00 extrn chdir:near ; CODE XREF: _chdirj extern:0804B3CC ; DATA XREF: .got.plt:off_804B240o extern:0804B3D0 ; unsigned int alarm(unsigned int seconds) extern:0804B3D0 00 00 00 00 extrn alarm:near ; CODE XREF: _alarmj extern:0804B3D0 ; DATA XREF: .got.plt:off_804B244o extern:0804B3D4 ; FILE *popen(const char *command, const char *modes) extern:0804B3D4 00 00 00 00 extrn popen:near ; CODE XREF: _popenj extern:0804B3D4 ; DATA XREF: .got.plt:off_804B248o extern:0804B3D8 ; uint16_t htons(uint16_t hostshort) extern:0804B3D8 00 00 00 00 extrn htons:near ; CODE XREF: _htonsj extern:0804B3D8 ; DATA XREF: .got.plt:off_804B24Co extern:0804B3DC ; int setgroups(size_t n, const __gid_t *groups) extern:0804B3DC 00 00 00 00 extrn setgroups:near ; CODE XREF: _setgroupsj extern:0804B3DC ; DATA XREF: .got.plt:off_804B250o extern:0804B3E0 ; int accept(int fd, struct sockaddr *addr, socklen_t *addr_len) extern:0804B3E0 00 00 00 00 extrn accept:near ; CODE XREF: _acceptj extern:0804B3E0 ; DATA XREF: .got.plt:off_804B254o extern:0804B3E4 ; int usleep(__useconds_t useconds) extern:0804B3E4 00 00 00 00 extrn usleep:near ; CODE XREF: _usleepj extern:0804B3E4 ; DATA XREF: .got.plt:off_804B258o extern:0804B3E8 ; int setgid(__gid_t gid) extern:0804B3E8 00 00 00 00 extrn setgid:near ; CODE XREF: _setgidj extern:0804B3E8 ; DATA XREF: .got.plt:off_804B25Co extern:0804B3EC ; int puts(const char *s) extern:0804B3EC 00 00 00 00 extrn puts:near ; CODE XREF: _putsj extern:0804B3EC ; DATA XREF: .got.plt:off_804B260o extern:0804B3F0 ; int getdtablesize(void) extern:0804B3F0 00 00 00 00 extrn getdtablesize:near extern:0804B3F0 ; CODE XREF: _getdtablesizej extern:0804B3F0 ; DATA XREF: .got.plt:off_804B264o extern:0804B3F4 ; void exit(int status) extern:0804B3F4 00 00 00 00 extrn exit:near ; CODE XREF: _exitj extern:0804B3F4 ; DATA XREF: .got.plt:off_804B26Co extern:0804B3F8 ; int open(const char *file, int oflag, ...) extern:0804B3F8 00 00 00 00 extrn open:near ; CODE XREF: _openj extern:0804B3F8 ; DATA XREF: .got.plt:off_804B270o extern:0804B3FC ; void srand(unsigned int seed) extern:0804B3FC 00 00 00 00 extrn srand:near ; CODE XREF: _srandj extern:0804B3FC ; DATA XREF: .got.plt:off_804B274o extern:0804B400 ; size_t strlen(const char *s) extern:0804B400 00 00 00 00 extrn strlen:near ; CODE XREF: _strlenj extern:0804B400 ; DATA XREF: .got.plt:off_804B278o extern:0804B404 ; int __cdecl _libc_start_main(int (__cdecl *main)(int, char **, char **), int argc, char **ubp_av, void (*init)(void), void (*fini)(void), void (*rtld_fini)(void), void *stack_end) extern:0804B404 00 00 00 00 extrn __libc_start_main:near extern:0804B404 ; CODE XREF: ___libc_start_mainj extern:0804B404 ; DATA XREF: .got.plt:off_804B27Co extern:0804B408 ; ssize_t write(int fd, const void *buf, size_t n) extern:0804B408 00 00 00 00 extrn write:near ; CODE XREF: _writej extern:0804B408 ; DATA XREF: .got.plt:off_804B280o extern:0804B40C ; int vasprintf(char **, const char *, va_list) extern:0804B40C 00 00 00 00 extrn vasprintf:near ; CODE XREF: _vasprintfj extern:0804B40C ; DATA XREF: .got.plt:off_804B284o extern:0804B410 ; int bind(int fd, const struct sockaddr *addr, socklen_t len) extern:0804B410 00 00 00 00 extrn bind:near ; CODE XREF: _bindj extern:0804B410 ; DATA XREF: .got.plt:off_804B288o extern:0804B414 ; int getifaddrs(struct ifaddrs **ifap) extern:0804B414 00 00 00 00 extrn getifaddrs:near ; CODE XREF: _getifaddrsj extern:0804B414 ; DATA XREF: .got.plt:off_804B28Co extern:0804B418 ; int rand(void) extern:0804B418 00 00 00 00 extrn rand:near ; CODE XREF: _randj extern:0804B418 ; DATA XREF: .got.plt:off_804B290o extern:0804B41C ; void freeifaddrs(struct ifaddrs *ifa) extern:0804B41C 00 00 00 00 extrn freeifaddrs:near ; CODE XREF: _freeifaddrsj extern:0804B41C ; DATA XREF: .got.plt:off_804B294o extern:0804B420 ; __pid_t fork(void) extern:0804B420 00 00 00 00 extrn fork:near ; CODE XREF: _forkj extern:0804B420 ; DATA XREF: .got.plt:off_804B298o extern:0804B424 ; void errx(int status, const char *format, ...) extern:0804B424 00 00 00 00 extrn errx:near ; CODE XREF: _errxj extern:0804B424 ; DATA XREF: .got.plt:off_804B29Co extern:0804B428 ; int listen(int fd, int n) extern:0804B428 00 00 00 00 extrn listen:near ; CODE XREF: _listenj extern:0804B428 ; DATA XREF: .got.plt:off_804B2A0o extern:0804B42C ; int setuid(__uid_t uid) extern:0804B42C 00 00 00 00 extrn setuid:near ; CODE XREF: _setuidj extern:0804B42C ; DATA XREF: .got.plt:off_804B2A4o extern:0804B430 ; int socket(int domain, int type, int protocol) extern:0804B430 00 00 00 00 extrn socket:near ; CODE XREF: _socketj extern:0804B430 ; DATA XREF: .got.plt:off_804B2A8o extern:0804B434 ; int shutdown(int fd, int how) extern:0804B434 00 00 00 00 extrn shutdown:near ; CODE XREF: _shutdownj extern:0804B434 ; DATA XREF: .got.plt:off_804B2ACo extern:0804B438 ; ssize_t recv(int fd, void *buf, size_t n, int flags) extern:0804B438 00 00 00 00 extrn recv:near ; CODE XREF: _recvj extern:0804B438 ; DATA XREF: .got.plt:off_804B2B0o extern:0804B43C ; int close(int fd) extern:0804B43C 00 00 00 00 extrn close:near ; CODE XREF: _closej extern:0804B43C ; DATA XREF: .got.plt:off_804B2B4o extern:0804B440 00 extrn _ITM_deregisterTMCloneTable ; weak extern:0804B444 00 00 00 00 extrn __gmon_start__:near ; weak extern:0804B444 ; CODE XREF: ___gmon_start__j extern:0804B444 ; DATA XREF: .got:__gmon_start___ptro ... extern:0804B448 00 extrn _Jv_RegisterClasses ; weak extern:0804B44C 00 extrn _ITM_registerTMCloneTable ; weak extern:0804B44C abs:0804B5A0 ; =========================================================================== abs:0804B5A0 abs:0804B5A0 ; Segment type: Absolute symbols abs:0804B5A0 ; abs abs:0804B5A0 public _edata abs:0804B5A0 _edata = 804B2C4h abs:0804B5A4 public _end abs:0804B5A4 _end = 804B308h abs:0804B5A8 public __bss_start abs:0804B5A8 __bss_start = 804B2C4h abs:0804B5A8 abs:0804B5A8 abs:0804B5A8 end _start