Challenge 15

2009ISEC.apm is actually an Android Package file. Rename 2009ISEC.apm to 2009ISEC.apk, install it on an Android phone, then run it, tap on the About button, and you’ll see the answer which is Wowhacker$%hinehong(ISEC)#$boann.

**Challenge 16 **

Challenge 16 is a Windows reversing challenge. The binary fishing.exe has a hidden form named TForm2. To see this form, one can replace the parameter of the first Createform() call at 00475EDC by the parameter of TForm2.

Original asm code:

00475ED6   MOV EDX,DWORD PTR DS:[4754D8] ;  00475524 << value of TForm1
00475EDC   CALL 00453694

Patched asm code:

00475ED6   MOV EDX,DWORD PTR DS:[475134] ;  00475180 << value of TForm2
00475EDC   CALL 00453694

TForm2 asks for a password, then it does some calculations and compares the result with MTRJTWQI7dUwnijTkMnLEWf.

The password processing routine starts at the loop at 004753B2:

004753B2  MOV EAX,DWORD PTR SS:[EBP-8]
004753B5  MOV BL,BYTE PTR DS:[EAX+EDI-1]
004753B9  CMP BL,20
004753BC  JE SHORT 004753DB
004753BE  LEA EAX,DWORD PTR SS:[EBP-8]
004753C1  CALL 00404384
004753C6  MOV EDX,EDI
004753C8  DEC EDX
004753C9  SAR EDX,1
004753CB  JNS SHORT 004753D0
004753CD  ADC EDX,0
004753D0  ADD EDX,EDX
004753D2  SUB BL,DL
004753D4  ADD BL,0A
004753D7  MOV BYTE PTR DS:[EAX+EDI-1],BL
004753DB  INC EDI
004753DC  CMP EDI,1A
004753DF  JNZ SHORT 004753B2

Notice that this routine is very simple, the most important are 2 operations at

004753D2 and 004753D4:

004753D2  SUB BL,DL
004753D4  ADD BL,0A

To reverse this routine, we just change subtract to add and add to subtract,  then input the encrypted password string to find out the original password.

Patched asm code:

004753D2  ADD BL,DL
004753D4  SUB BL,0A

After patching the asm code like that, we enter the encrypted password string MTRJTWQI7dUwnijTkMnLEWf into TForm2, and set a break point at the first argument of** LStrCmp()** function at 004753E1 to sniff out the decrypted password.

004753E1  MOV EAX,DWORD PTR SS:[EBP-8] ; EBP-8 will store the decrypted password
004753E4  MOV EDX,DWORD PTR DS:[479C8C]
004753EA  CALL 00404278 ; call LStrCmp()

We will see that encrypted string MTRJTWQI7dUwnijTkMnLEWf will be decrypted to CJJBVNSMG5dUypmnZqUvVOcr. Use this password on the original app, and we get the final answer: HOMEWORLD2_PrideOfHiG@Ra.