본문 바로가기
CTF./Internetwache CTF 2016

File Checker Write-Up #Internetwache CTF 2016

by 낭람._. 2022. 8. 4.
반응형

Points : 60
Solves : 190
Description:

My friend sent me this file. He told that if I manage to reverse it, I'll have access to all his devices. My misfortune that I don't know anything about reversing :/
Attachment: rev60.zip

 

실행을 해봤는데 Fatal error: File does not exist가 나온다. 특정한 파일을 생성해야 하는 문제 인 것 같다.

 

main 함수다.

.password 파일을 열어서 안에 있는 문자열을 꺼내와 sub_40079C에서 연산을 하고 v8과 or 연산을 하여 마지막에 v8이 0이면 Congrats!가 나오는 구조다.

 

sub_40079C 함수다.

배열이 나와있고, 배열과 문자를 더한 후 4919로 나누어 준다.

 

main 함수로 돌아와.. 아래 부분을 만족하기 위해서는 sub_40079C의 리턴값이 0이 되어야 한다.

* A or B연산에서 0이 나오기 위해서는 A, B 모두 0이 되어야 한다.

 

이제 아래의 코드를 주목해서 봐야한다.

v2 = (int)(v4[a1]+*a2)%4919;

 

v2가 0이 되기 위해서는 v4[a1]+*a2가 4919가 되어야 한다. v4는 배열로 주어져 있으니 간단하게 코딩하여 a2를 구하면 된다.

 

table = [4846, 4832, 4796, 4849, 4846, 4843, 4850, 4824, 4852, 4847, 4818, 4852, 4844, 4822, 4794] 

for item in table :
    print(chr(4919-item),end='')
IW{FILE_CHeCKa}
반응형

'CTF. > Internetwache CTF 2016' 카테고리의 다른 글

ServerfARM Write-Up #Internetwache CTF 2016  (0) 2022.08.05
SPIM Write-Up #Internetwache CTF 2016  (0) 2022.08.04

댓글