Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 353
  • Last Modified:

what input will diffuse bomb?

this is decompiled assembly.

it looks like this accepts two numbers as input.

from what i can tell Vfffffffc   must be between 0-4 and eax must be equal to Vfffffff8 or function explode_bomb is called.

the value of Vfffffffc    determines which case of the switch statement is executed.... then the code jumps to the value of "goto"... then the rest of the statements are excuted.

is that accurate?
/*	Procedure: 0x08048EC1 - 0x08048F80
 *	Argument size: -76
 *	Local size: 40
 *	Save regs size: 0
 *	Called by:
 *		main()
 */
 
phase_3(A8)
/* unknown */ void  A8;
{
	/* unknown */ void  V0;
	/* unknown */ void  V4;
	/* unknown */ void  V8;
	/* unknown */ void  Vfffffff8;
	/* unknown */ void  Vfffffffc;
 
    V8 = & Vfffffff8;
    V4 = & Vfffffffc;
    V0 = "%d %d";
    *esp = A8;
    if(L080489D4() <= 1) {
        explode_bomb();
    }
    if(Vfffffffc <= 7) {
        switch(Vfffffffc) {
            case 0:
                eax = 0x304;
                goto L08048f3e;
            case 1:
                eax = 0;
                goto L08048f3e;
            case 2:
                eax = 0;
                asm("o16 nop");
                goto L08048f43;
            case 3:
                eax = 0;
                goto L08048f48;
            case 4:
                eax = 0;
                asm("o16 nop");
                goto L08048f4b;
            case 5:
                eax = 0;
                goto L08048f50;
            case 6:
                eax = 0;
                asm("o16 nop");
                goto L08048f55;
            case 7:
L08048f02:
                eax = 0;
                goto L08048f5a;
        }
        goto L08048f02;
L08048f3e:
        eax = eax - 0x3ba;
L08048f43:
        eax = eax + 0x134;
L08048f48:
        eax = eax - 0x74;
L08048f4b:
        eax = eax + 0x118;
L08048f50:
        eax = eax - 0x308;
L08048f55:
        eax = eax + 0x308;
L08048f5a:
        eax = eax - 0xa4;
    } else {
        explode_bomb();
        eax = 0;
    }
    if(Vfffffffc > 5 || eax != Vfffffff8) {
        eax = explode_bomb();
    }
}

Open in new window

0
braker15
Asked:
braker15
1 Solution
 
braker15Author Commented:
nevermind i figured it out
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now