elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97
861  Programación / ASM / Re: Ayuda! Problema con MASM Inline en: 28 Agosto 2013, 01:25 am
Gracias MCK! Pero no se arreglo cambiando [Contador] por Contador.. Igual no entiendo porque Contador tiene el valor de hint, Contador se va incrementando en 1 a medida que recorre las funciones "exportables" dentro del modulo... 116 son todas las funciones que exporta Ws2_32.dll,, o sea que.. llega al final de la export table y no encuentra la funcion "socket",, pero algo esta buscando! y no encuentra!!! Me tiene mal ya.. desde las 14:00 estoy con esto.. y son casi las 21 aca!! jaja

Saludos!!
862  Programación / ASM / Re: Ayuda! Problema con MASM Inline en: 28 Agosto 2013, 00:40 am
Si,, el anterior es modo debug,, este es release !

http://www.4shared.com/file/raoh5eiv/Coso_1.html

863  Programación / ASM / Re: Ayuda! Problema con MASM Inline en: 28 Agosto 2013, 00:06 am
Sii,, vi! Gracias MCK!
864  Programación / ASM / Re: Ayuda! Problema con MASM Inline en: 27 Agosto 2013, 23:56 pm
Listo... http://www.4shared.com/file/BqAR2or0/Coso.html
865  Programación / ASM / Ayuda! Problema con MASM Inline en: 27 Agosto 2013, 23:38 pm
Hola amigos! Alguien con un poco de tiempo se anima a revisar por que no funciona este code! El error salta cuando busco la direccion de "socket",, me da mal el Ordinal de la funcion, y no me devuelve la direccion... Gracias!
Código:
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int Kernel32();
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño);
int LoadLibrari(char *Modulo);

DWORD Krn32 = 0;
DWORD Ws2_32 = 0;
//**************************
DWORD GetProcA = 0;
DWORD LoadLibA = 0;
DWORD Sock = 0;
//**************************
DWORD Contador;
DWORD PEHeader = 0;
DWORD ET = 0;
WORD PosicionEAT = 0;

DWORD Retorno = 0;

int main()
{

Kernel32();
printf("\n\nLa direccion de Memoria de Kernel32.dll es: %8X", Krn32);
printf("\nLa direccion de Memoria de Kernel32.dll con LoadLibraryA es: %8X", LoadLibraryA("Kernel32.dll"));

cout << "\n\n*****************************************************************" << endl;

GetProcA = GetOffset( Krn32, "GetProcAddress", 14 );
printf("La direccion de Memoria de GetProcAddress es: %8X", GetProcA);
printf("\nLa direccion de Memoria de GetProcAddress con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"GetProcAddress"));

cout << "\n\n*********************************************************************" << endl;

LoadLibA = GetOffset( Krn32, "LoadLibraryA", 12 );
printf("La direccion de Memoria de LoadLibraryA es: %8X", LoadLibA);
printf("\nLa direccion de Memoria de LoadLibraryA con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"LoadLibraryA"));

cout << "\n\n*********************************************************************" << endl;

Ws2_32 = LoadLibrari("ws2_32.dll");
printf("\nLa direccion de Memoria de Ws2_32.dll es: %8X", Ws2_32);
printf("\nLa direccion de Memoria de Ws2_32.dll con LoadLibraryA es: %8X", LoadLibraryA("Ws2_32.dll"));

cout << "\n\n*********************************************************************" << endl;

Sock = GetOffset( Ws2_32, "socket", 6 );
printf("\nLa direccion de Memoria de socket es: %8X", Sock);
printf("\nLa direccion de Memoria de socket con GetProcAddress es: %8X", GetProcAddress((HMODULE)Ws2_32,"socket"));

cin.get();
}

int Kernel32()
{

__asm{
mov eax, fs:[0x30]
mov eax, [eax + 0x0C]
lea eax, [eax + 0x0C]
NextModule:
mov eax, [eax]
mov ebx, [eax + 0x30]
cmp byte ptr[ebx + 6*2], '3'
jne NextModule
mov ebx, [eax + 0x18]
mov Krn32, ebx
}

return 0;
}
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño)
{

__asm {

mov Contador, -1

mov eax, Modulo
  add eax, [eax+3Ch]
  mov [PEHeader], eax
  add eax, 78h
  mov eax, [eax]
  add eax, Modulo
  mov [ET], eax
  add eax, 20h
mov eax, [eax]
  add eax, Modulo

bucle:

  inc Contador
  mov ebx, [eax]
  add ebx, Modulo
  mov esi, ebx
  add eax, 4
mov edi, Funcion
  mov ecx, Tamaño
  repe cmpsb
  jnz bucle

  mov ecx, [ET]
  mov ecx, [ecx+24h]
  add ecx, [Modulo]
  mov eax, [Contador]
  add eax, eax
  add ecx, eax
  mov ax, word ptr [ecx]
  mov [PosicionEAT], ax

mov eax, [ET]
  mov eax, [eax+1Ch]
  add eax, Modulo
  mov ebx, [Contador]
  rol ebx, 2
  add eax, ebx
  mov eax, [eax]
  add eax, Modulo
mov Retorno, eax

}
cout << "\nEl Ordinal es: " << Contador << endl;
return Retorno;
}
int LoadLibrari(char *Modulo)
{
__asm{
push [Modulo]
call [LoadLibA]
mov Retorno, eax
}

return Retorno;
}
866  Programación / ASM / Re: PEB y funciones de kernel32 en: 8 Agosto 2013, 19:22 pm
Pero mas que muchisimas gracias!! Ese empujoncito precisaba jejeje
Ahora me pongo con la lectura ;)

EDITADO: Y gracias a The Swash que no termine de leer el texto y ya se nota que esta muy bueno!
867  Programación / ASM / Re: PEB y funciones de kernel32 en: 8 Agosto 2013, 06:49 am
Gracias por responder! O sea que el modulo kernel32 tiene cabezera PE? Como los exe? Seguro que no es lo mismo,, pero es con lo unico que lo puedo asociar,,, tenes algun enlace que explique bien eso ?
Yo he buscado en el foro bastante y en otros lados, pero no logro captar como funciona..

Otro texto interesante es:
http://foro.elhacker.net/buscador2-t320584.0.html;msg1585396#msg1585396 de lShadowl

El texto de The Swash que comentas es este?
http://foro.elhacker.net/buscador2-t327025.0.html;msg1612552#msg1612552
868  Programación / ASM / PEB y funciones de kernel32 en: 8 Agosto 2013, 02:39 am
Hola amigos!! Alguien podria ayudarme a entender bien como funciona el tema de encontrar funciones en kernel32 y utilizarlas? Hace 3 dias que le dedico 8hs diarias y no he podido encontrar las funciones!! Es muy estresante jaja
Lei todos los post que hablan del PEB del foro y muchos otros mas! Pero a mi humilde entender, casi todos llegan hasta la parte de encontrar la direccion de kernel32,, eso lo entendi.. pero no logro una vez ahi parado (en la direccion de memoria de kernel32) seguir buscando dentro las funciones, y mucho menos ejecutarlas!!

Como recorro el modulo kernel32??? Muchas gracias!!

PD: Algo de la info que rescate, la que entendi mejor ->

http://el-blog-de-thor.blogspot.com/2011/05/obtener-la-direccion-base-de.html
Ahi estan muy bien detalladas las estructuras que vamos recorriendo

http://el-blog-de-thor.blogspot.com/2011/05/usando-getprocaddress-y-loadlibrary_07.html
Ahi esta explicado como recorrer y buscar la funcion GetProcAddress (Pero creo que utiliza otro metodo, porque recurre a la cabezera del PE y no entiendo para que) :/

http://www.projectshellcode.com/node/22
Ahi hay una shellcode pero entiendo nada

EDITADO: Bien,, desde que escribi la consulta hasta recien, conoci una herramienta que se llama dumpbin! Excelente! Pero igual preciso ayuda jaja
869  Seguridad Informática / Análisis y Diseño de Malware / Re: Troyanos con Cliente Web en: 6 Agosto 2013, 02:08 am
Excelente!! Ya lo baje.. hoy lo pruebo a ver como es la cosa jejeje Gracias!!
870  Seguridad Informática / Análisis y Diseño de Malware / Re: Troyanos con Cliente Web en: 5 Agosto 2013, 19:37 pm
Hola! Gracias por responder! Si, para mi la conexion tiene que ser con sockets, pero como decia,, los hosting gratuitos no ofrecen sockets.. y no voy a contratar hosting y dominio para eso..

no se podria enviar por post en c++ informacion a ciertos formularios? despues yo recuperaria esa informacion y la mostraria en la pagina como una conexion establecida.. el problema seria como enviarle al programa c++ los comandos desde el web panel sin sockets  :-\

Alguna sugerencia ?

Y con respecto al programa c++ y los Av's.. bueno,, eso ya es cuestion de ocultar las llamadas apis y demais.. podria adaptar un codigo en asm que tengo tambien.. ;)
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines