Red de conocimientos turísticos - Conocimientos sobre calendario chino - [Lenguaje fácil][OD] Acerca del método de escritura de secuestro de dll (también llamado parche estático)

[Lenguaje fácil][OD] Acerca del método de escritura de secuestro de dll (también llamado parche estático)

Creo que cambiar archivos no es tan elegante como la inyección de DLL.

VirtualAllocEx se aplica a la memoria,

WriteProcessMemory escribe el código de shell de la dll,

crea un hilo que apunta a su código de shell.

Sencillo y agradable de escuchar, no es necesario cambiar OEP en absoluto y mucho menos buscar 00.

Si insistes en usar el método de parche estático,

De hecho, no creo que necesites usar ningún lenguaje sencillo. Simplemente guarda y reemplaza el archivo original con la DLL. modificado por OD.

Simplemente hazlo. ¿Por qué molestarse? A menos que tenga algo especial sobre este DLL o EXE, por supuesto que no puede hacer esto.

Es más doloroso usar ensamblador en idioma Yi. No sé mucho sobre el idioma Yi.

Si eres lo suficientemente testarudo como para querer usar la programación para resolverlo, déjame darte una idea aproximada.

Primero, busque 00 y encuentre un espacio vacío lo suficientemente grande.

En segundo lugar, obtenga el OEP leyendo la estructura del PE. Si no lo comprende, estructure usted mismo Baidu PE.

En tercer lugar, el OEP se cambia al espacio abierto que encontró en el paso 1.

Esto implica el tema de la alineación de la dirección virtual del archivo (parece que se llama así), que es bastante complicado y no sé mucho al respecto.

Deja que tú lo descubras.

Cuarto, escribe el código shell en un espacio abierto. Hay algún problema con su código shell. Llame a LoadLibrary para saltar usando compensaciones relativas. Cuando la ubicación de ensamblaje sea 483AFE, llamará a otro lugar, que se puede cambiar al siguiente código:

Mov eax, cargar dirección de biblioteca

Llamar a eax

Quinto, el jmp al final del shellcode vuelve al OEP original. Esto también implica problemas de alineación.