문제가 엄청 긴데, KEY값이랑 KEY 값이 출력되려면 HexEdit에서 어디에 KEY값을 넣어야 하는지 구하라고 한다.
일단 파일을 실행시켜서 아무 값이나 입력했는데 check를 눌러도 반응이 없다.
Exeinfo로 확인해주었다.
패킹도 되어있지 않고 깔끔하다.
X32 디버거로 열어서 문자열 찾기를 진행하였다.
Congratulation이라는 성공 flag가 있길래 해당 부분으로 이동하였다.
뭔가 매우 복잡해 보이는데 모듈 분석도 안된다,,
그러길래 그냥 내 마음대로 두 군데다 BP를 걸고 실행을 시켰더니 40106B와 401082에서 자꾸 길이 샌다.
그래서 실행을 하는 중간에 두 곳 모두 JE로 수정하였다.
수정을 하고 내려가다 보니 40107D에서 EAX와 7A2896BF를 비교하고 있길래 해당 숫자를 계산기로 확인해서 KEY값에 입력해보았다.
오,, KEY 값은 찾았다.
KEY : 2049480383
이제 CONGRATULATION대신 KEY값이 출력되기 위해서 HexEdit에서 어떤 영역에 key값을 overwrite 하면 되는지 찾으면 된다.
나는 HXD를 사용해주었다.
HXD로 열어서 내려가다 보니 성공 FLAG가 담겨있는 부분이 있다.
0X0D3B부터 0X0D62까지 값이 담겨있다. (문자열은 마지막에 NULL이 채워져 있음)
따라서 해당 부분을 지우고 내가 원하는 KEY값으로 채워주면 0X0D3B부터 0X0D45(마지막은 NULL)까지 값이 담기게 된다.
KEY : 2049480383
주소 영역 : 0D3B0D45
{FALG} : 20494803830D3B0D45
'Reversing > CodeEngn' 카테고리의 다른 글
[CodeEngn] Basic RCE L15풀이 (0) | 2021.09.13 |
---|---|
[CodeEngn] Basic RCE L14풀이 (0) | 2021.09.13 |
[CodeEngn] Basic RCE L11풀이 (0) | 2021.08.18 |
[CodeEngn] Basic RCE L10풀이 (0) | 2021.08.18 |
[CodeEngn] Basic RCE L09풀이 (0) | 2021.08.18 |