Solved

what input will diffuse bomb?

Posted on 2009-05-15
1
334 Views
Last Modified: 2012-05-07
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
Comment
Question by:braker15
1 Comment
 
LVL 1

Accepted Solution

by:
braker15 earned 0 total points
ID: 24401197
nevermind i figured it out
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
C hashtable library 3 81
Programming Arduino to control a Max7219 using C 2 113
smtp c source code 7 40
Computer slow / BSOD 10 36
An Outlet in Cocoa is a persistent reference to a GUI control; it connects a property (a variable) to a control.  For example, it is common to create an Outlet for the text field GUI control and change the text that appears in this field via that Ou…
Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now