�C�mo est�n
relacionados los registros EAX, AX, AL y AH?
EAX es un registro de 32 bit (un ' doubleword', o
' double'). La parte m�s baja de (E)AX es AX, un
registro de 16 bits (word) AX puede descomponerse
en partes m�s altas y m�s bajas, AH y AL (estos
son registros de 8 bits).
(E)AX = 934F93AB
Aqu� la parte m�s alta es EAX=934F y la parte
m�s baja de (E)AX es AX: 93AB. �stos son los
�ltimos 8 bits (byte) de �l (recuerdas 2 bits =
1 hex). Se relacionan AH y AL directamente a este
como AH=93, AL=AB. Ellos no son independientes.
Modificando EAX modificas a AL, AH, etc... y
modificando a AL cambia AX y EAX. (NOTA: lo que
ves en SoftICE [en la ventana del registro]
realmente es el valor en hex.) (NOTA 2: (E)
normalmente indica que es un registro de 16 bit).
�C�mo puedo usar
el comando BPM en SoftICE para encontrar serials?
�ste es un comando muy �til. Una vez has
encontrado donde tu serial ficticio se guarda,
puedes querer hacer un BPM SEG:OFFSET r. Esto le
dir� a SoftICE que rompa siempre que el programa
intente una lectura [(r)ead] de tu serial
ficticio (obviamente por que tendr� que
validarlo). Otra forma es conseguir descifrar la
rutina del c�digo comprimido. Encuentra el
comando que piensas que se descomprime en alguna
parte. Pon un BPM SEG:OFFSET w en el. Reinicia el
programa. BOOM! SoftICE aparece de golpe en medio
de la rutina de descifrado donde el comando esta
escribiendo [(w)ritten] en la memoria. Encuentra
un espacio vac�o y remienda esa direcci�n
despu�s de la rutina del descifrado;)
�Qu� hacen esas
abreviaciones que est�n en la parte superior
derecha del SoftICE?
CoRN2:
O D I S Z A P C
| | | | | | | |
| | | | | | | +------- Carry Flag
| | | | | | +--------- Parity Flag
| | | | | +----------- Auxiliary Carry Flag
| | | | +------------- Zero Flag (MUY UTIL! )
| | | +--------------- Sign Flag
| | +----------------- Interrupt Flag
| +------------------- Direction Flag
+--------------------- Overflow Flag
�Puedes darme
alguna informaci�n detallada sobre los
registros?
Registros de uso variado
EAX: - El acumulador. Uso general
EBX: - La base...
ECX: - el contador... principalmente para los
bucles...
EDX: - El desplazamiento...
Registros de la pila
EBP - el Indicador de la Base... para la pila..
ESP - el indicador de la pila..
Registros del segmento
CS - Code Segment.(Segmento de c�digo) Esto es
donde las instrucciones son...
DS - Data Segment.(Segmento de datos) Esto es
donde pueden accederse a los datos. Segmento de
c�digo al tratar con operaciones de strings.
ES - Extra Segment.(Segmento extra) Este segmento
tambi�n puede usarse como un segmento de datos.
Segmento de c�digo al tratar con operaciones de
strings.
SS - Stack Segment.(Segmento de pila) Este
segmento es para las direcciones...
Registros del �ndice
ESI - el Indice del Origen. Usado por operaciones
de string como procedencia.
EDI - el Indice del Destino. Usado por
operaciones de string como destino.
(BX - BX tambi�n puede usarse como un registro
de �ndice. �stos registros se usan junto con
los registros del segmento como un offset)
As� que,�Qu� quieren decir DS:SI entonces?
Bien, simplemente ese DS apunta al segmento de
datos y SI es un desplazamiento en el segmento de
datos.
Estoy buscando una
gu�a did�ctica [inserta nombre]. �Puedes
ayudarme?
�Para encontrar la gu�a did�ctica que est�s
buscando, simplemente comprueba el PUBLIC TUTORIAL
SEARCH ENGINE!
Soy solamente
est�pido o es imposible conseguir que SoftICE
escriba en un archivo. Digamos por ejemplo que
quiero escribir una pantalla de SoftIce a un
archivo de texto y as� puedo examinarlo
despu�s. �Puede hacerse esto?
Pasos:
Primero lanza el symbol loader y vas a softice
initialization settings. Pon history buffer size
de m�s de KB, obviamente: -) (el valor
por defecto es 256, no es bastante para un
listado grande). Entonces lanza el SoftICE.
Pon tus breakpoints y todo para llegar al c�digo
deseado. Desensambla por ejemplo con,
U CS:EIP L 1000
Y despu�s CTRL-D inmediatamente para volver a
Win9x/NT, lanza el Symbol Loader de nuevo y
escoges File/Save SoftICE History As... Y el
archivo guardado contiene tu c�digo, SoftICE
cargado, todos lo que tecleas (aun cuando
est�s trazando SIN la ventana de c�digo
adelante), etc.
�Puedes decirme
por favor qu� llamadas necesito trazar?
Normalmente necesitas trazar las llamadas
anteriores a hacer saltar el mensaje de error.
�Puedes crackear
por favor [inserta nombre aqu�]?
Yo no acepto peticiones de cracks... �si me
pides de nuevo que crackee algo, publicar� tu
e-mail en http://crackmes.cjb.net!!
�Puedes enviarme
por favor [inserta nombre aqu�]?
Yo no te enviar� nada... Solamente ignorare este
e-mail.
Yo tengo [inserta
problema aqu�] con [inserta nombre de
herramienta aqu�]. �Puedes ayudarme?
�Haz la pregunta en Fravia's
Tools of the Trade Forum y
conseguir�s una respuesta!
�Qu� significa
[eax], [ebx], etc - mi pregunta "[]"
eso que es?
VERtiCES:
[]significa, los DATOS dentro de �l.
Por ejemplo MOV EAX,DWORD PTR [EDX]
En la direcci�n EDX, imagina que los primeros 4
bytes son 05 04 AF EE. As� que, despu�s de esta
instrucci�n, EAX debe tener el valor EEAF0405 h (recuerdas,
siempre es en orden inverso)
Soy un Newbie y
necesito saber si es posible averiguar si algo
esta comprimido o no.
Usa GetTyp!
�Que es HMEMCPY?
Volatility:
HMEMCPY es una llamada de API de Windows que usa
memoria (RAM) para leer, manipular, comparar y
almacenar strings (el texto que has introducido
en un programa). La funci�n toma la informaci�n
que has entrado (como el nombre y n�mero de
serie en una pantalla del registro) y los pone en
la memoria. La funci�n procede entonces a
manipular estos strings, moviendo y
compar�ndolos (por ejemplo, comparando t�
n�mero de serie al correcto), y entonces decide
si tu string es correcto o incorrecto. La
funci�n reenv�a entonces esta informaci�n a la
aplicaci�n, y tu procedes como un chico bueno, o
un chico malo.
�C�mo encontrar
espacio libre en la Secci�n del C�digo de un
programa?
UFK:
Ejecuta ProcDump y pulsa en PE Editor. Abre tu
programa designado. Ahora aprieta en el bot�n de
'Sections' y mira la secci�n del C�digo:
| Name
|
Virtual
Size |
Virtual
Offset |
Raw
Size |
Raw
Offset |
Characteristics
|
| CODE |
00076560 |
00001000 |
00076600 |
00000400 |
60000020 |
Virtual Offset: El mismo, en memoria
Raw Offset: El f�sico, en el archivo
Raw Size: Bytes que los Segmentos del C�digo necesitaron
Virtual Size: Bytes que los Segmentos del C�digo tienen
�Ahora si Virtual Offset comienza en 1000 c�mo
viene en SoftICE y ves cosas con 4000000 o
n�meros as� de largos? La respuesta para esa
pregunta es, que hay una Imagen Base tambi�n, y
�sa es una direcci�n para ser cargada por el
programa PREFERENTE, a�adida en el espacio de
direcci�n. Recuerda, PREFERENTE, significan que
puede cambiar bajo ciertas circunstancias.
Si echas una mirada a la descripci�n anterior,
averiguar�s que hab�a 76600 - 76560 = A0h (240)
bytes de espacio libre en la Secci�n de C�digo.
Los Segmentos del C�digo comienzan en 400h (Raw
Offset). As� Raw Offset + Virtual Size nos da
donde hay espacio libre.
400 + 76560 = 76960
Ahora usa tu Editor Hex favorito y ve a 76960h...
y disfruta usando tu espacio libre.
|