주어진 dataloss파일을 ida를 통해 열어보았고 뭔가 문자열을 때려 박는거 같은 sub_278함수를 찾았다.
이 함수의 호출을 다음과 같이 알아보았다.
[ sub_468 ]
[ loc_614 ]
[ sub_26E0 ]
sub_278을 호출할 때, sub_468의 인자값(arg_0)를 넘긴다.
sub_468을 호출할 때는 sub_26E0의 리턴 값의 포인터 값을 이용해 호출한다.
sub_26E0은 413D14h값을 리턴한다.
우선 sub_278에서 떄려박은 값들을 모아보았다.
sub_278을 호출할 때 인자값은 알기 어려울거 같아 플래그 양식인 TMCTF{~~}에 맞춰 첫번째 문자 K가 T가 나오게 만들어지도록 각 값에 +9를 파이썬을 이용해 계산해보았다.
shpik@shpik:/ctf/trend/reversing$ python
Python 2.7.11+ (default, Apr 17 2016, 14:00:29)
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [0x4B,0x44,0x3A,0x3D,0x72,0x74,0x5B,0x58,0x6B,0x58,0x63,0x66,0x6A,0x6A,0x6E,0x66,0x65,0x6B,0x6A,0x6B,0x66,0x67,0x6C,0x6A]
>>> ''.join([chr(i+9) for i in a])
'TMCF{}datalosswontstopus'
'0x400 CTF' 카테고리의 다른 글
[WEB] ASIS 2017 FINAL - golem (0) | 2018.03.15 |
---|---|
[WEB] ASIS 2017 FINAL - GSA Main Server (0) | 2018.03.15 |
[Nuit du hack XV Qual] No Pain No Gain - 75 pts (0) | 2017.04.04 |
[SECCON 2016] uncomfortable web - 300pts (0) | 2016.12.12 |
[TrendMicroCTF 2016] Misc -100pts (0) | 2016.08.05 |