A classic question familiar with the use of od

Get the program and put it in the PE to check that there is an Aspack shell

Insert picture description here

Use shelling software for shelling
Insert picture description here

Open the file, let us register, and enter it at will as shown in the figure:
Insert picture description here

I found a pop-up box, which is a very important clue. Open the breakpoint analysis under od:
After entering at will, it reaches the login failure pop-up window.
Insert picture description here

By analyzing the nearby assembly, it can be found that when the two values ​​are not equal, always jump to 004012A1
Insert picture description here

I counted sixteen. It is roughly estimated that the correct format is to input 16 characters. Restart the program at 004012A4 and input 16 characters to start the analysis:
Pass[0]==B, this character is directly compared with 0x42, 0x42 is converted to ASCII and then converted to character B
Insert picture description here

Pass[15]==Y It can be seen that the character is stored in the eax register, and then 0x42 is added to equal 0x57, and the calculated and converted value is Y
Insert picture description here

Pass[1]==Z This time store the value in ecx, and then use the lea command, which means to store the value in ecx minus 3 into eax, and use 0x57 minus 3 to convert it to Z, which is roughly the same calculation method later , Note that the sorting method is from ebp-0x240 to ebp-0x231 for pass[0] to pass[15]
Insert picture description here

Pass[14]==A
Insert picture description here

Pass[2]==9
Insert picture description here

Pass[13]==b
Insert picture description here

Pass[3]==d
Insert picture description here

Pass[12]==7
Insert picture description here

Pass[4]==m
Insert picture description here

Pass[11]==G
Insert picture description here

Pass[5]==q
Insert picture description here

Pass[10]==9
Insert picture description here

Pass[6]==4
Insert picture description here

Pass[9]==g
Insert picture description here

Pass[7]==c
Insert picture description here

Pass[8]==8
Insert picture description here

After sorting, the required string is BZ9dmq4c8g9G7bAY, and the
mailbox input format is [email protected]. The
registration code is: BZ9dmq4c8g9G7bAY
Insert picture description here

flag{ BZ9dmq4c8g9G7bAY }

Guess you like

Origin blog.csdn.net/weixin_46148324/article/details/108582832