Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - josue9243

#41
Cita de: BloodSharp en 17 Agosto 2017, 04:38 AM




DWORD STDCALL GetCaller();
asm(".globl _GetCaller;\n"
"_GetCaller:\n"
"movl 0x4(%ebp),%eax;\n"
"ret;");



B#

JAAJAJAJJAJAAJA

Que grande bloodsharp :v, el tema es que lo pongo en la misma función del detour?, o donde lo pondria?.

Expliquese (? ah re :V
#42
Pero pasame el __asm en código ;_; sino lo hubiera hecho yo jajajjaaja

si pongo:

dword myret;

__asm
{
mov esi, eax;
mov eax, myret;
}

no creo que ande D:
#43
¿Cómo obtengo el RetAddress de una función que está con detour?, ejemplo:

CreateFileA retorna el valor de el address de la función la cual lo llamo, ¿Cómo hago para obtener TODOS los ret que manda?.

EDIT: Seria como el ESI (?
#44
else if (num=max){

----->

else if (num==max){

Te explico lo que hicistes en el código, no entendi bien.

Seguro es el if mal que pusistes


#include <stdio.h>

int main() {
     int num;
     int max;
     int count = 0;
     printf("Introduce un numero: ");
     scanf("%d", &num);  // Pedis el numero al cliente
     while ( num >=0 ){ // Mientras el numero sea mayor o igual a 0
     if (num>max) { // Verifica si el numero es mayor la maximo
      max = num; //De ser asi el Maximo pasa a ser el numero
      count = 1; //Setea Count en 0
  }
  else if (num=max){ //De lo contrario verificar si num es igual a max
                              // ERROR (Debe ser num == max) "=" es setear
                             // y "==" es verificar si es igual a
   count=count + 1; //Contador sube +1 (simplificalo asi Count++ o Count+=1)
       printf("contador: %d\n",count); //Printea el Count
             printf("numero %d\n",num); //Printea el Numero
  }
      printf("Introduce un numero: "); // Printea message pidiendo
     scanf("%d", &num); //Pide el numero
}
    printf("El numero mayor es %d y se ha introducido %d veces",max,count); // Printea valores
}
#45
Tenkiu ahora pruebo  ;)   :)

EDIT: d10 anda exelente, gracias.
#46
Programación C/C++ / Unsigned char con address
12 Agosto 2017, 04:06 AM
Hola denuevo, queria saber como modificar un ADDRESS con unsigned char tipo:

*(unsigned char*)0x..... = 0x55;

el tema es que funciona asi PERO sólo puedo editar 1 byte, ¿Cómo hago para editar más de un byte?, intenté con = {0x55, 0x65} pero no funciono porque tiraba error.

intenté con *(unsigned char*)(0x.......+1) = 0x55; y sumandole pero tampoco andaba.
#47
Si tenes un tiempito libre haceme el detour de esto porfavor.
#48
No lo creo, intercepte donde empieza el CALL a la función LdrpLoadDLL, aparte OpenGL32 se carga ahí, y también aparece una string que lo está cargando ahí.

Otra cosa tengo el win 7 32 bits.

si no me equivoco segui los jmp y termina en ret 18.

Creeria que el ntdll va cambiando segun el windows y bit...

Modifique a los parametros de la otra cosa y tampoco agarra u.u

#49
Aca está la declaración de las funciones:


typedef NTSTATUS ( NTAPI *LdrLoadDllFunc ) ( PWCHAR, ULONG *, UNICODE_STRING *, HMODULE * );
LdrLoadDllFunc LdrLoadDllPtr;

typedef NTSTATUS ( NTAPI *LdrpLoadDllFunc ) ( PWCHAR, ULONG *, UNICODE_STRING *, HMODULE *, int a5 );
LdrpLoadDllFunc LdrpLoadDllPtr;


//DETOUR:
//Directamente inserto el address de LdrpLoadDLL (si andaba lo adaptaba automaticamente)

std::uint8_t* aLdrpLoadDll = (std::uint8_t*)(DWORD)0x7717fc1d;//(std::uint8_t*)GetProcAddress( GetModuleHandle( "ntdll.dll" ), "LdrpLoadDll" );
LdrpLoadDllPtr = (LdrpLoadDllFunc)DetourFunction( (PBYTE)0x7717fc1d, (std::uint8_t*)Detour_LdrpLoadDLL );



FOTOS:

LdrLoadDLL
[spoiler]

[/spoiler]

LdrpLoadDLL
[spoiler]

[/spoiler]

LdrLoadDLL en IDA Pro
[spoiler]

[/spoiler]

#50
Hola primeramente, últimamente intenté hookear o hacer un detour a LdrpLoadDll, logré hacerlo a LdrLoadDll pero bueno, a la otra función cuando intentaba CRASH, LdrpLoadDll se puede localizar en LdrLoadDll unas lineas abajo lo llama, su push no es "push 55", es un "push 140".

¿Alguna idea?, o simplemente alguna idea de como filtrar inyecciones en esa función?.

IMPORTANTE: la función LdrpLoadDll no está exportada, simplemente es una función.

Tenkiu

EDIT: Si necesitan un Hex-Rays de IDA Pro o alguna foto desde el Depurador para que vean la función, lo publico.

EDIT2: Esto no lo puse en ingenieria inversa PORQUE simplemente contiene C++, pero si va en ingenieria inversa sólo me dicen y lo paso. (o algun mod amable me lo podria pasar  ;))