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 - _Enko

#591
Por lo que vi, la ejecutable desempaquetada tiene la IAT corrupta,  tendras que reparar eso.
Ademas, una vez que le sacas el UPX, la ejecutable realmente sigue empaquetada, ya que llama a VirtualAlloc varias veces para crearse un espacio de ejecucion.

Asi que tendras que dumpear la ejecutable desempaquetada, encontrar la oep  y reparar la iat.
#592
ASM / Re: Tipo de licencia de asm y otros.
6 Agosto 2011, 15:22 PM
En cuanto al sistema de archivos, busca documentacion de los existentes fat, ntfs, ex2 etc... una  vez que entiendas la documentacion te fijas si usas uno de esos o creas el tuyo.


En linux, gcc (compialador c) usa como ensamblador de fondo GAS. Pero no te recomiendo aprender a usar ese, ya que no es un ensamblador real, sino que esta como para hacer de fondo al gcc. Usa sintaxis AT&T.

En linux puedes usar nasm o fasm.
#593
ASM / Re: Tipo de licencia de asm y otros.
6 Agosto 2011, 00:57 AM
Citar
1. Estuve mirando y el procesador 8080 de intel tiene las mimas instrucciones que los actuales (intel core duo), mi pregunta es, si un programa hecho para un procesador de intel antiguo de 8 bits sirve para uno de 32 bits por ejemplo, con las mismas instrucciones, supongo que amd y otros fabricantes tendran otras instrucciones no?
No conozco ningun procesador x86 de 8 bits... 16,32 y 64.

La computador x86 enciende en modo Real de 16 bits, luego el SO  es el que se encarga de pasar a modo Protegido (32bit) o el "Long Mode" de 64bit.

La compatibilidad hacia atras es diria yo 100%.
La unica excepcion que conozco es 3D NOW  de Amd, que en los procesadores actuales ya no viene por simple hecho que existe mmx, sse.

Citar
2. Las funciones de la bios como la de imprimir en pantalla palabras, no varian en las distintas bios?, o hay que hacer un programa para cada bios?
Las funciones de la BASIC INPUT OUTPUT SYSTEM son Estandar. Luego hay algunas interrupciones especiales que agrega cada fabricante.

Citar
como puedo saber que procesador tiene X pc, por ejemplo saber si es un AMD o un INTEL que son los más usados, y como puedo saber los componentes del pc, con asm claro esta.
CPUID, no el programa, sino la instruccion bien documentada en los manuales de intel y amd.

Citar4. que licencia tiene asm y que restricciones tiene.
asm, assembly es el lenguaje, no tiene ningun tipo de licencia.
Los ensambladores si tienen licencia, masm con EULA, nasm gnu, fasm  licencia propia libre para uso comercial.

Citar
Como se crea un formato de archivo
Si quieres respetar un formato existente, sigues la documentacion de ese formato.
Si quieres crear un formato nuevo, lo creas y listo.

Citar
6. Con que programa o compilar genero el asm?
asm no se compila, se ensamba con: masm, nasm, fasm
Esos tres son los mas documentados.
la licencia de masm prohibe usarlo para crear programas fuera de windows.
as'i que te queda fasm y nasm.
#594
docuemntacion oficial de microsoft incluyendo win7
http://www.feishare.com/attachments/094_pecoff_v8.pdf
#595
Busca todas las rutinas de ComboBox.items.add() y las reemplazas por lo que necesites, por ejemplo un NOP y listo, no se añaden mas items al combobox.

Si mal no recuerdo, Items era una property de Tipo TStringList, así que si quieres inicializar el combobox con valores que tu quieras, tendras  llamar a Items.Clear() y luego Items.Add();
Todo eso, por supuesto en algun lugar que haya espacio vacio como para reemplazar las rutinas.

Saludos.
#596
Cuando salgas del TLS callback, no vas a aterizar en el OEP, sino en el EP.
El metodo de buscar OEP siguen siendo los mismos de siempre, la unica diferencia, que por ejemplo el VirtualAlloc, o VirtualProtect este antes del EP en el TLS.
#597
ASM / Re: mover en memoria
25 Julio 2011, 15:23 PM
Si estas en win32, la memoria viene protegida, donde intentes acceder a una direccion de memoria que no pertenece a tu ejecutable te encontraras con una excepcion.

Si quieres modificar otra ejecutable, tendras que cargarla como si fueras un depurador y ahi tendras acceso.
busca info de como cargar una ejecutable para depurar, o bien, tambien te sirve tutoriales para hacer trainers de videojuegos.

Citar
MOV AX, 004033C0
no hay forma que 004033C0 entre en AX que es un registro de 16bit.
Aqui tienes toda la info que necesitaras:
http://msdn.microsoft.com/en-us/library/ms679303
#598
ASM / Re: mover en memoria
25 Julio 2011, 01:36 AM
La instruccion que estas buscando es "movsb" o bien "lodsb y stosb".

Saludos
#599
Puedes poner un bp normal, solo que tienes que saber donde esta la funcion callback.
Si sabes que esta por ejemplo en 403044, haces bp 403044 y listo.
#600
la respuesta estaba en el ejemplo
Acordate que en la arquitectura x86 los bytes estan invertidos en las palabas y dobles palabras.

Citar
0040102F     E8 19000000    call    KeyMeNoD.0040104D saltar 25 bytes adelante
00401034     E8 14000000    call    KeyMeNoD.0040104D saltar 20 byts adelante
00401039     E8 0F000000    call    KeyMeNoD.0040104D saltar 15 bytes adelante
0040103E     E8 0A000000    call    KeyMeNoD.0040104D saltar 10 bytes adelante
00401043     E8 05000000    call    KeyMeNoD.0040104D; saltar 5b adelante
00401052     E8 F6FFFFFF    call    KeyMeNoD.0040104D ;saltar5 b atras
00401057     E8 F1FFFFFF    call    KeyMeNoD.0040104D ;saltar 10bytes atras
0040105C     E8 ECFFFFFF    call    KeyMeNoD.0040104D ;saltar 15 bytes atras
0040107A     E8 CEFFFFFF    call    KeyMeNoD.0040104D

la direccion es lo que esta despues del E8.