BUUCTF(re8~re9)

re8:reverse3

1. Download the attachment and check the shell
insert image description here
32-bit without shell
2. Open it with ida32 and check the characters
insert image description here
Find the key function, and notice abcd... (It is very likely that base64 encryption is used)
Follow up and check the pseudo-c code
insert image description here
The process is probably: input a character String, and then through the sub-4110BE function, and then each subscript value is subtracted, and then compared with str2.
Let’s take a look at the content of the function with an idea.
insert image description here
It is obviously base64 encryption, so the script is left below.
The script is as follows:

import base64
d='e3nifIH9b_C@n@dH'
c=''
for i in range(len(d)):
    c+=chr(ord(d[i])-i)
print(base64.b64decode(c))

insert image description here
So
flag{i_l0ve_you}

re9: different flags

1. Download the attachment and check the shell
insert image description here
32-bit without shell
2. Open it with ida32 and check the characters

insert image description here
From this program, it can be guessed that this is a maze problem , which was written once before

Open ida32 and find a character similar to a map.
insert image description here
Find the main function to view the pseudo-c code.
insert image description here
Follow up _data_start__ and find this string
*11110100001010000101111#
holding it should be a map. The
direction is also found in the program.
This picture is n columns and m rows How to find n and m
can be found under the pseudo-c code
insert image description here
, then you can guess that it is 5 * 5,
and sure enough, you can get 222441144222
insert image description here
directly , so flag{222441144222}


Guess you like

Origin blog.csdn.net/cainiao78777/article/details/123239344