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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 47
51  Programación / Ingeniería Inversa / Re: Error usando x64dbg y multiprotección UPX y Dotfix en: 7 Julio 2020, 17:39 pm
Los BP de software son muy ruidosos y modifican el codigo original por lo que son facilmente detectables, incluso pueden llegarte a romper un codigo automodificable. Intenta en su lugar usar Memory y/o Hardware Breakpoints y comprueba si no son detectados tambien
Saludos
52  Programación / Programación C/C++ / Re: Mejorar el código en C++ nativo en: 7 Julio 2020, 17:13 pm
No creo que exista una manera estandar en C++ para lograr lo que deseas, sin embargo puedes usar un par de opciones:

1- Usando la funcion "getch()" de la libreria NO estandar "conio.h" (getch() espera una entrada del teclado pero no la muestra en la consola)

2- Usando la API de Windows para modificar el comportamiento de la consola:
Código
  1. SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), GetStdHandle(STD_OUTPUT_HANDLE) & ~(ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT));
   
    Para leer y escribir:
        
Código
  1. ReadConsole(...)/WriteConsole(...)

3- Usando GetAsyncKeyState(...) en un loop

4- Usando un hook de teclado con GetConsoleWindow(...)/SetWindowsHookEx(...)

Saludos
53  Programación / Programación C/C++ / Re: Errores al pasar datos de un archivo a una lista en: 23 Junio 2020, 22:01 pm
Tus variables "aux" y "txt2" en la funcion "cargalista" son variables locales, luego en tu codigo al hacer algo como

Código
  1. datito.apellido=aux;

simplemente estas copiando el puntero "aux" a tu miembro de estructura pero no el contenido al que apunta, lo que significa que una vez la funcion retorna y la memoria de las variables locales es liberada, ahora tendras lo que se conoce como dangling pointer (puntero colgante), apuntando a memoria desconocida. En este caso entonces necesitas hacer una copia de la memoria a donde apunta el puntero y no del puntero en si, puedes sustituir

Código
  1. datito.apellido=aux;

por

Código
  1. datito.apellido=malloc(strlen(aux) + 1);
  2. strncpy(datito.apellido, aux, i);

lo mismo con "datito.pais" y lo mismo en tu funcion "agregar"

Código
  1. (*nodo)->dato=datito;

por

Código
  1. memcpy(&(*nodo)->dato, &datito, sizeof(struct s_datos));

Saludos

EDIT: Olvidé mencionar que igual no tiene mucho sentido y es mejor que te deshagas por completo de las variables “aux” y “txt2” y uses directamente los miembros de la estructura local “datito”

EDIT2: En la funcion "agregar" estoy usando "shallow copy" con la estructura, pero en este caso supongo que una copia profunda es el camino a tomar

Código
  1. memcpy(&(*nodo)->dato, &datito, sizeof(struct s_datos));

por una llamada a la funcion

Código
  1. void copia_stdatos(t_dato *dest, t_dato *src)
  2. {
  3.    dest->apellido = malloc(strlen(src->apellido) + 1);
  4.    strncpy(dest->apellido, src->apellido, strlen(src->apellido) + 1);
  5.  
  6.    dest->dni = src->dni;
  7.  
  8.    dest->pais = malloc(strlen(src->pais) + 1);
  9.    strncpy(dest->pais, src->pais, strlen(src->pais) + 1);
  10. }
54  Foros Generales / Foro Libre / Re: ¿Por que los Españoles se enojan tanto cuando los confunden con Arabes?? en: 22 Junio 2020, 16:12 pm
USA compró California a España, "Por un puñado de dólares." :silbar: :silbar: :silbar:

 :xD :xD :xD :xD :xD...es broma no?!
55  Programación / .NET (C#, VB.NET, ASP) / Re: como pasar valores por referencia de un formulario A a otro B y usarlo en A en: 20 Junio 2020, 00:49 am
Esto lo puedes resolver de varias maneras, por ejemplo de cualquiera de estas dos te podria servir
 
Código
  1. // Metodo 1: usando composicion y properties
  2. public class ClassA
  3. {
  4.    public int Quantity {get; set;}
  5.    // ...
  6.    private void AddQuantity(int p_Quantity) { Quantity += p_Quantity; }
  7. }
  8.  
  9. public class ClassB
  10. {
  11.    ClassA clsA;
  12.  
  13.    public ClassB(ClassA p_clsA){ this.clsA = p_clsA; }
  14.    public void ShowQuantity()
  15.    {
  16.        Console.WriteLine($"Quantity from ClassA = {clsA.Quantity}");
  17.    }
  18. }
  19.  
  20.  
  21. // Metodo 2: usando atributos estaticos (-_-)
  22. public class ClassA
  23. {
  24.    public static string Color;
  25.    // ...
  26.    private void ChangeColor(string p_Color) { Color = p_Color; }
  27. }
  28.  
  29. public class ClassB
  30. {
  31.    public void ShowColor()
  32.    {
  33.        Console.WriteLine($"Color from ClassA = {ClassA.Color}");
  34.    }
  35. }
56  Programación / .NET (C#, VB.NET, ASP) / Re: como pasar valores por referencia de un formulario A a otro B y usarlo en A en: 19 Junio 2020, 15:58 pm
Algo te impide usar atributos de clases y/o asociaciones?
Saludos
57  Programación / Programación General / Re: Simbología y elementos de un diagrama de clases en: 5 Junio 2020, 18:29 pm
What is Class Diagram?
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-class-diagram/
58  Programación / Programación C/C++ / Re: problema if anidados (notas) en: 5 Junio 2020, 18:07 pm
Argumentando un poco mas lo que te han dicho anteriormente, la comparacion de decimales no es tan simple como con numeros enteros y la mayor diferencia radica en la precision. Para mas teoria al respecto puedes ver

https://es.wikipedia.org/wiki/Formato_en_coma_flotante_de_simple_precisi%C3%B3n
https://es.wikipedia.org/wiki/Formato_en_coma_flotante_de_doble_precisi%C3%B3n

En este caso otra posible solucion que se refirio seria usar | a - b | ≤  ϵ; donde ϵ es la constante epsilon. Luego tienes que tener en cuenta que dependiendo de los valores que deseas comparar te servira mas un acercamiento que otro, para este tema no hay un algoritmo o un metodo infalible para todos los casos. Para tu ejemplo en concreto esto tambien te sirve:

Código
  1. #define fleq(a, b) ((((a - b) < FLT_EPSILON) && (fabs(a - b) > FLT_EPSILON)) || (fabs(a - b) < FLT_EPSILON) ? 1 : 0)

Uso:

Código
  1. if ((nota >= 5) && fleq(nota, 6.9))
  2. {
  3.    printf ("\nHas aprobado!!");
  4. }
  5. else
  6. {
  7.    printf ("\nMehhh!!");
  8. }

Saludos
59  Seguridad Informática / Análisis y Diseño de Malware / Re: Encontrar la funcion main en un binario en: 3 Junio 2020, 17:56 pm
@fary
AddressOfEntryPoint y la direccion de inicio de la funcion "main" son dos cosas diferentes, el primero no tiene porque ser necesariamente el segundo (y casi nunca lo es).

@marax
Con IDA y Ghidra es muy sencillo localizar la funcion main en el listado de funciones.
Por otra parte si lo quieres manualmente, como ya mencionaste, localizando referencias en instrucciones a cadenas dentro del ejecutable es una forma muy utilizada para localizar zonas de codigo y funciones en general. Tambien puedes hacer "stalk walking" en el caso que lo estes depurando, o incluso puedes usar ciertas llamadas a funciones como guia para llevarte a la funcion main, la cual casi siempre esta algunas lineas mas abajo de estas. En este caso entre las que serian usadas con mas probabilidad tienes "kernel32.GetCommandLineX", "kernel32.GetEnvironemStringX" o si usa los runtimes de c++ "__getmainargs" y "__p__environ", finalmente "kernel32.ExitProcess" o "_cexit" probablemente te pueden llevar justo unas instrucciones despues de la salida de la funcion main

Saludos
60  Seguridad Informática / Análisis y Diseño de Malware / Re: Malware-Gen en: 22 Mayo 2020, 17:09 pm
Parece tratarse de la extension "Imgur Uploader", la cual ha sido modificada en las ultimas versiones por el autor para inyectar ads en las busquedas y obtener ganacias de ello. Creo que ya ha sido reportada como Adware y por ello tu antivirus salta. Para arreglarlo debe ser tan sencillo como eliminar dicha extension
Saludos
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 47
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines