Professional Documents
Culture Documents
Email
La motivacin para escribir
Como desarrolladores profesionales, creamos productos. Ponemos en prctica
ideas, que por lo general son impulsados desde algn antojo de negocios para
su aceptacin en el mercado mundial, de su grupo objetivo. Tratamos de
ofrecer soluciones elegantes, rpidos y fiables y, sinceramente, no nos gusta
cuando alguien utilice nuestro trabajo sin por lo menos decir "gracias, has
realmente hizo una gran cosa". Es por eso que tenemos que proteger nuestro
trabajo. Y para hacer eso, debemos ser conscientes de los vectores comunes
usados por los crackers para hackear nuestro software.
registros diagrama
Instrucciones aritmticas
aadir / sub / inc - operaciones aritmticas. Puede funcionar con constantes,
registros o clulas de memoria
Las instrucciones de flujo de control son lo que ms nos interesa aqu. Para ver
un tutorial completo sobre el lenguaje ensamblador x86, consulte este artculo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include <iostream>
#include <sstream>
void execute ()
{
nmeros de cuerda;
int bodega;
para (;;)
{
cout << "Introduzca el cdigo: \ n";
getline (cin, nmeros);
si (nmeros! = "82634")
{
cout << ". \ nIntente nuevo \ n";
}
ms
{
cout << "Cdigo aceptadas";
descanso;
}
}
return 0;
}
Vamos a tener que desmontar, depuracin y, opcionalmente, descompilar
nuestro ejemplo. Descargar las siguientes herramientas que nos ayudarn a
hacer eso:
OllyDbg
IDA
He compilado este ejemplo que se puede descargar desde aqu. Cuando
empezamos a ella vemos la siguiente aplicacin de consola simple:
descompilacin-consola de aplicacin
"Intntalo de nuevo"
Depurar el ejecutable
Inicie el depurador OllyDbg (con privilegios de administrador) y abra el exe.
(Click para agrandar)
OllyDbg-tutorial-01
IDA-grfica
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{
std__operator ___ std__char_traits_char_ (std__cout, "Por favor introduzca el
cdigo: \ n");
v1 = std__basic_ios_char_std__char_traits_char ____ ampliar ((_ DWORD)
std__cin + (_DWORD) * (y std__cin + 1), 10);
std__getline_char_std__char_traits_char__std__allocator_char_ (v1);
v0 = (int *) y v13;
si (v15> = 0x10)
v0 = v13;
v2 = 5;
si (v14 <5)
v2 = v14;
if (! v2)
Goto LABEL_21;
v3 = (int) "82634";
v5 = (unsigned int) v2 <4;
v4 = v2 - 4;
si (v5)
{
LABEL_10:
si (v4 == -4)
Goto LABEL_19;
}
ms
{
while (* v0 == * (* _ DWORD) v3)
{
++ V0;
v3 + = 4;
v6 = (unsigned int) v4 <4;
v4 - = 4;
si (v6)
Goto LABEL_10;
}
}
v7 = * (_ BYTE *) v0 <* (_ BYTE *) v3;
si (* (_ BYTE *) v0! = * (_ BYTE *) v3
|| V4! = -3
&& ((V8 = * ((_ BYTE *) v0 + 1), v7 = v8 <* (_ BYTE *) (v3 + 1), v8! = * (_
BYTE *) (v3 + 1))
|| V4! = -2
&& ((V9 = * ((_ BYTE *) v0 + 2), v7 = v9 <* (_ BYTE *) (v3 + 2), v9! = * (_
BYTE *) (v3 + 2))
|| V4! = -1 && (V10 = * ((_ BYTE *) v0 + 3), v7 = v10 <* (_ BYTE *) (v3 +
3),
v10! = * (_ BYTE *) (v3 + 3)))))
{
v11 = -v7 | 1;
Goto LABEL_20;
}
LABEL_19:
v11 = 0;
LABEL_20:
si (v11)
Goto LABEL_23;
LABEL_21:
si (v14> = 5 && v14 == 5)
descanso;
LABEL_23:
std__operator ___ std__char_traits_char_ (std__cout, "\ nIntente de nuevo. \
n");
}
std__operator ___ std__char_traits_char_ (std__cout, "Cdigo aceptado");
resultado = std__basic_istream_char_std__char_traits_char ____ __ operador
(std__cin, y v16);
si (v15> = 0x10)
resultado = operador delete (v13);
resultado regresar;
}
As, podemos descomponer una imagen nativa en un cdigo fuente
comprensible? Depende de su idea de "comprensible". Usted tiene que dedicar
mucho tiempo y hay que poseer un conocimiento serio de la API para el uso por
el sistema de operacin, junto con la comprensin de la sintaxis de C y de la
Asamblea.
S, no lo es. Con la diferencia de que este proceso en una aplicacin real ser
ms tiempo. Sabes una nica aplicacin independiente popular que no se ha
roto? Es por eso que usted necesita para pensar en mejores formas de proteger
su software. Entender una cosa simple:
Cada aplicacin puede ser roto, si usted tiene acceso a su imagen materna, al
igual que cualquier contrasea de equipo puede romperse, si tiene acceso
fsico a la mquina.
Por supuesto, hay tcnicas que nos permite reducir la velocidad por un
atacante, que podra o no ser suficiente. Pero "desaceleracin" no significa "la
prevencin", y eso es un tema de otro artculo.
Autor Info
Artculos Relacionados:
Tutorial: Creacin de un sitio web esttico Edicin del archivo hosts en Windows
7
Dimitar
07 de marzo 2013 a las 20:42 | # 1 Responder | Citar
Gran artculo, muy til para todos los desarrolladores de software. Gracias por
la publicacion.
Kosta Hristov
31 de mayo 2013 a las 19:16 | # 2 Responder | Citar
Hola Dimitar,
Me alegro de que te guste. ;) Si usted tiene algunas notas o recomendaciones,
no dude en escribirlos.
Volodymyr
17 de junio 2013 a las 19:32 | # 3 Responder | Citar
Esto es exactamente lo que estaba buscando. Cul es el mejor software /
prctica por ah descompilar / desmontar un ejecutable? Cul usas?
Kosta Hristov
22 de junio 2013 a las 18:31 | # 4 Responder | Citar
Hola Volodymyr,
Depende de la unidad de compilacin. Si se trata de Java / .Net que muy
probablemente ser de cdigo de bytes / MSIL por lo que ser muy fcil de
descomponer, a menos ofuscado. Puede utilizar herramientas como reflector
para .Net. Si se trata de C / C ++, OllyDbg y la AIF son uno de los mejores, sin
embargo, usted no tiene un montn de opciones aqu.
Saludos,
Kosta
Alireza
11 de julio 2013 a las 09:36 | # 5 Responder | Citar
Hola querido
Tengo un archivo ejecutable con foto y tengo que salvar a esta foto en la PC por
favor me ayude
Nota: exe crear por foto deluxe
Kosta Hristov
11 de julio 2013 a las 12:52 | # 6 Responder | Citar
Hola Alireza,
Los mtodos que he descrito en este tutorial son un poco bajo nivel de bits
para su tarea. Supongo que ests hablando PicturesToExe lujo?
En ese caso, usted probablemente ha intentado utilizar el mismo programa
para extraer las fotos. Tienes dos opciones:
1. Descargar esta herramienta y probarlo en el ejecutable con las imgenes
http://www.picturestoexe.com/forums/index.php?
app=core&module=attach§ion=attach&attach_id=3655
2. Basta con abrir la presentacin en pantalla completa y hacer una captura de
pantalla de la pantalla. A continuacin, utilice pintura para pegarlo. Es posible
que tenga alguna cualidad perdi, pero depende de la propia imagen.
Buena suerte