DP.Challenge #1

Published 10-22-2008 3:51 PM

Welcome! I had nothing to do, so I decided to put up a very newbie challenge. Please read specifications.

Level (0-5): 0-Newbies
Restrictions: None
Files: It is attached.

Scenario: DMMA Corporation, a company whose accounting personnel cannot add numbers, hired a programmer do code a software specifically to add integers. After a few days, the programmer has partially finished the software and submitted the executable for beta testing. At that time, the company is in the brink of bankruptcy. This event prevented the company to compensate the programmer for the work he has done.

Of course, the programmer got furious when he learned about this. So what he did was he permanently deleted all his source files, making sure that it cannot be recovered in any way. Then he simply left the company.

The company, after learning about the disappearance of the programmer had no chance of getting another programmer (of the same caliber) to do the job, start from scratch again (since the sources were all deleted beyond recovery). All they had was the unfinished build that was submitted to the beta testing department, which after a few sessions -- they found a huge bug.

So they though, why not make use of the existing build? So they spread the word, looking for someone who could do just that.

And you. Yes you. You heard the news. It's your decision to grab the opportuniy or not. Are you gonna take it?

Goal: Find out what the bug is, then repair it without the original source code by any means necessary. Once done, write a simple tutorial or article how you did it, then post in your devpinoy blog or devpinoy forum. Write a comment saying that you have solved it and link to your article. Good luck!

Please note that successfully solving this problem will not get you any prize, not that I don't want to, I just can't, BUT what you get is knowledge. Sabi nga ni ka-Ernie, "kung walang knowledge, (all together now) walang power". This is just for fun, so... have fun!

Comments

# allice_666 said on Wednesday, October 22, 2008 9:06 PM

I'll try this one.

Over qualified si Chris dito ah. haha.

# modchip said on Thursday, October 23, 2008 1:05 AM

^ I'll be waiting for your solution! ;)

# cvega said on Thursday, October 23, 2008 11:16 PM

ayus, madali lang ito :)

I'll wait for Rolvin's solution before I'll post mine.

cheers

# modchip said on Friday, October 24, 2008 7:33 PM

Antayin nyo rin yung solution ni lamia, he said that he'll try this out too. ;)

# dee-u said on Sunday, October 26, 2008 1:49 AM

I'll just wait for your solutions... =)

# allice_666 said on Sunday, October 26, 2008 7:08 AM

After reviewing Tuts by Leena and asked a few friends ofcourse. I came up on a solution,  here it is:

I looked for the error message “the error has encountered an unknown problem”. Checked the codes before it and I found this -> CMP EAX, 0A.

I compare EAX to 0A (which has a value of 10) then jumps to modal dialog box that produces an error. If I were to change the 0A to 64, then the sum up value will have its limit up to 100.

Another solution is to wreck the conditional statements. Change the JMP instructions.

I changed only the limit. Thanks Mods! I learned a lot!!!

# modchip said on Sunday, October 26, 2008 7:00 PM

Thank for your time solving this Rolvin! Yep, that is one way to solve it. But of course, it would be better if you entirely remove the limit bug. ;)

FYI, chris also had a solution for this.

2 solutions! This is great. I'm now inspired to do another one.

*thinking about what to do next* ;)

# cvega said on Sunday, October 26, 2008 10:31 PM

Mine is similar to Rolvin.

I just replaced:

76 33         JBE SHORT 00xxxxxx

With:

EB 37         JMP SHORT 00xxxxxx

This way elliminate the limit and proceed to program's function.

-cheers

# modchip said on Sunday, October 26, 2008 11:42 PM

Yes, the correct target was the conditional jump to completely remove the limit. :D