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ú

Temas - majerisa

#1
Ingeniería Inversa / Ayuda con ollydbg
18 Octubre 2016, 23:09 PM
Hola a todos, estoy empezando en esto y estoy intentando hacer una practica y debo ser muy torpe porque no hay manera.
Tengo un programa que lo único que hace es comparar un password que se introduce por teclado y compararlo con el que tiene el código.
#include <stdlib.h>
int main()
{
    char password[4];
    int isOK = 0;
    int i =0;
    void passwordOK();
    while  (isOK == 0 && i<3){
        i++;
        printf("Password: ");
        gets(password);
        if (strcmp(password, "PARIS")==0)  {
        }   isOK = 1;
else{printf("Password NOT OK\n");
} };
    if (isOK ==1){
            passwordOK();
        }else{
            printf("ERROR: 3 passwords NOT
OK\n");
            system("PAUSE");
} }return 0;
void passwordOK()
{
     printf("Password OK\n ");
     system("PAUSE");
}


Lo que necesito hacer es, modificacarlo con ollydbg, de forma que si se introduzco una contraseña incorrecta, se realice igualmente la llamada a la función passwordOK() y muestre el mensaje "Password OK ".

Importante que haga la llamada a la función, y no consigo localizarla en el ensamblador que me da ollydbg. Pongo la parte que creo que es la importante....


$-8C     00401360        |> 834424 18 01   /ADD DWORD PTR SS:[ESP+18],1             ; |||
$-87     00401365        |. C70424 2430400>|MOV DWORD PTR SS:[ESP],pac1.00403024    ; |||ASCII "Password: "
$-80     0040136C        |. E8 BF080000    |CALL <JMP.&msvcrt.printf>               ; ||\printf
$-7B     00401371        |. 8D4424 14      |LEA EAX,DWORD PTR SS:[ESP+14]           ; ||
$-77     00401375        |. 890424         |MOV DWORD PTR SS:[ESP],EAX              ; ||
$-74     00401378        |. E8 BB080000    |CALL <JMP.&msvcrt.gets>                 ; |\gets
$-6F     0040137D        |. C74424 04 2F30>|MOV DWORD PTR SS:[ESP+4],pac1.0040302F  ; |ASCII "PARIS"
$-67     00401385        |. 8D4424 14      |LEA EAX,DWORD PTR SS:[ESP+14]           ; |
$-63     00401389        |. 890424         |MOV DWORD PTR SS:[ESP],EAX              ; |
$-60     0040138C        |. E8 AF080000    |CALL <JMP.&msvcrt.strcmp>               ; \strcmp
$-5B     00401391           85C0           TEST EAX,EAX
$-59     00401393           75 0A          JNZ SHORT pac1.0040139F
$-57     00401395           C74424 1C 0100>MOV DWORD PTR SS:[ESP+1C],1
$-4F     0040139D        |. EB 0C          |JMP SHORT pac1.004013AB
$-4D     0040139F        |> C70424 3530400>|MOV DWORD PTR SS:[ESP],pac1.00403035    ; |ASCII "Password NOT OK"
$-46     004013A6        |. E8 9D080000    |CALL <JMP.&msvcrt.puts>                 ; \puts
$-41     004013AB        |> 837C24 1C 00    CMP DWORD PTR SS:[ESP+1C],0
$-3C     004013B0        |. 75 07          |JNZ SHORT pac1.004013B9
$-3A     004013B2        |. 837C24 18 02   |CMP DWORD PTR SS:[ESP+18],2
$-35     004013B7        |.^7E A7          \JLE SHORT pac1.00401360
$-33     004013B9        |> 837C24 1C 01   CMP DWORD PTR SS:[ESP+1C],1
$-2E     004013BE        |. 75 07          JNZ SHORT pac1.004013C7
$-2C     004013C0        |. E8 21000000    CALL pac1.004013E6
$-27     004013C5        |. EB 18          JMP SHORT pac1.004013DF
$-25     004013C7        |> C70424 4530400>MOV DWORD PTR SS:[ESP],pac1.00403045     ; ||ASCII "ERROR: 3 passwords NOT OK"
$-1E     004013CE        |. E8 75080000    CALL <JMP.&msvcrt.puts>                  ; |\puts
$-19     004013D3        |. C70424 5F30400>MOV DWORD PTR SS:[ESP],pac1.0040305F     ; |ASCII "PAUSE"
$-12     004013DA        |. E8 71080000    CALL <JMP.&msvcrt.system>                ; \system
$-D      004013DF        |> B8 00000000    MOV EAX,0
$-8      004013E4        |. C9             LEAVE
$-7      004013E5        \. C3             RETN
$-6      004013E6        /$ 55             PUSH EBP
$-5      004013E7        |. 89E5           MOV EBP,ESP
$-3      004013E9        |. 83EC 18        SUB ESP,18
$ ==>    004013EC           C70424 6530400>MOV DWORD PTR SS:[ESP],pac1.00403065     ;  ASCII "Password OK
"



Muchas gracias por vuestra ayuda