Título: linux gdb shikata ga nai Publicado por: b4rd0ck en 3 Marzo 2017, 04:34 am Hola a todos. No se si esta es la sección correcta.
Tengo el siguiente problema: estoy intentando analizar un shellcode que dispara un /bin/sh, el cual encodee con el algoritmo Shikata Ga Nai de Metasploit. Luego lo incorporo en un programa en C y lo analizo con GDB. 1ro lo encodee con 1 interacción y pude debuguearlo sin problemas. Cuando lo encodee con 2 iteracciones, ahí me surge que cuando va a hacer un XOR lo hace en un área de memoria diferente a la que estoy ejecutando y me dispara el siguiente mensaje: "Program received signal SIGSEGV, Segmentation fault." los datos son los siguientes: Dump of assembler code for function code: 0x56557020 <+0>: fldlg2 0x56557022 <+2>: fnstenv [esp-0xc] 0x56557026 <+6>: pop edx 0x56557027 <+7>: mov ebx,0x8f433112 0x5655702c <+12>: sub ecx,ecx 0x5655702e <+14>: mov cl,0xe => 0x56557030 <+16>: xor DWORD PTR [edx+0x17],ebx 0x56557033 <+19>: add edx,0x4 0x56557036 <+22>: add ecx,DWORD PTR [eax+0x22] 0x56557039 <+25>: mov eax,ds:0xfc8bb57a 0x5655703e <+30>: icebp 0x5655703f <+31>: popa 0x56557040 <+32>: loopne 0x56557089 0x56557042 <+34>: cmp eax,0xe48312c7 0x56557047 <+39>: es jmp 0x11a0:0x2ecb1f42 0x5655704f <+47>: mov DWORD PTR [edx-0x7022ec56],edi 0x56557055 <+53>: inc ebx 0x56557056 <+54>: cdq 0x56557057 <+55>: (bad) 0x5655705a <+58>: fadd QWORD PTR [edx+0x5d] 0x5655705d <+61>: add al,0x15 0x5655705f <+63>: inc esp 0x56557060 <+64>: push esp 0x56557061 <+65>: lods eax,DWORD PTR ds:[esi] 0x56557062 <+66>: mov edi,0xc5b7cceb 0x56557067 <+71>: mov fs,WORD PTR [esi] 0x56557069 <+73>: aad 0x24 0x5655706b <+75>: popa 0x5655706c <+76>: pop ebp 0x5655706d <+77>: xor ecx,DWORD PTR [eax] 0x5655706f <+79>: add BYTE PTR [eax],al End of assembler dump. 0x56557030 in code () (gdb) print /x $edx $1 = 0x56555452 ¿cómo puedo sortear este problema? Gracias.- |