본문 바로가기

WARGAME

(90)
PE - AutoPE 우선 오토잇으로 만들어진 파일을 하나 준다.실행을 하면 에러가 발생하는데 정상적으로 실행이 안된다. Exe2Aut 이 프로그램을 사용하면 디컴파일 된 소스를 볼 수 있다.총 소스 길이가 6264줄로 어마어마하다 하지만 딱히 중요한건 몇줄 안된다 이 부분에서 에러가 발생하는데 temp 폴더에 있는 gui5.png를 못풀어 오는 것이다.나중에서야 프랑스 언어때문에 안된다는걸 알게되었는데우선 프랑스 언어로 된 windows 8을 다운받았다. 실행시 모습이다 프랑스 언어로 된 운영체제에서는 아무 에러 없이 잘 돌아간다.그럼 이제 아무거나 입력해보자 에러 메시지가 보이는데 저런 문자열이 해당 소스에 존재하지 않는다 왜냐, 이런식으로 나와있기 때문이다.그래서 풀 방법을 생각했는데 우선 저 입력 창을 찾았다. 해당 ..
ELF - ARM 우선 ida로 해당 바이너리를 열어봤더니 어떻게 돌아가는지 감이 안잡혀서 실행해봤다아무것도 출력이 안된다. 그래서 메인에 브레이크 포인트를 설정하고 천천히 분석해보았다. 인자값을 하나 받으니 처음 사진에서 처럼 AAAA를 넣고 실행해보자 헥스레이로 보면 v4를 -1로 만들어야하는거 같은데 키 값의 길이는 31이다 그리고 빨간색으로 네모칸 친 부분에서 내가 입력한 값과 키값을 비교한다. R1 내가 입력한 값 R3가 키값 키 값을 어디서 가져오나 했더니 여기서 가져온다. 처음에는 저게 키값이라고 생각도 못했는데 뒤에 ^_까지 31이므로ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_가 플래그다...
PE - RunPE 이 문제는 다른 문제에비해 푼사람이 많아 도전해봤는데 음 왜그런지 알거같다. RunPE는 윈도우용으로 널리 사용되는 패킹 기술이라는데 실행하면 이렇게 나온다. UPX 섹션이 보이기도하고 UPX같아서 UPX 언패킹을 했더니 잘 되지 않았다. 디버거로 열어보면 음 보면 알겠지만 다른게 없다 정해진 것만 있는데 upx 언패킹 하는 소스도 안보이고 음 조금 난감했다.덤프떠보고 이것저것해봤는데 관련 자료에 RunPE라는 글이 있다 대충 내용이 readprocessmemory함수로 내용을 읽고 PE파일을 writeprocessmemory함수로 버퍼에 쓴다는거같다. 해당 함수에 브레이크 포인트를 걸고 실행한다음 스택을 보고버퍼의 주소를 덤프해보자덤프창에 새로운 PE가 있음을 확인할 수 있다. 내려보면 여러섹션들도 보..
pwnable.kr fix 12345678910111213141516171819202122232425262728293031323334353637383940414243#include // 23byte shellcode from http://shell-storm.org/shellcode/files/shellcode-827.phpchar sc[] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69" "\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"; void shellcode(){ // a buffer we are about to exploit! char buf[20]; // prepare shellcode on executable stack! strcpy(bu..
pwnable.kr dragon dragon을 실행하면 영웅을 선택한다.영웅은 Preist와 Knight가 있는데 게임을 해본 사람이라면 누구나 알 수 있을 것이다.preist는 힐러 느낌이고 knight는 딜러 느낌이다한번 preist를 선택해보자 baby dragon을 만났다 baby dragon은 체력 50에 30데미지씩 입히고 5씩 회복한다. priest는 체력이 42에 마나가 50이다 근데 30씩 맞으면 그냥 죽으라는 소리 아닌가...스킬은 1. 마나 10 소모하고 20데미지를 준다.2. 마나를 회복한다.3. 한차례 무적 다음으론 knight를 보자이번에는 엄마 드래곤이다 체력이 80인 대신 회복력과 데미지가 조금 적다knight를 선택하면 스킬이1. 20데미지2. 40데미지 , 대신 내가 20 피해봄기사니 마나를 쓸일은 없지..
solveme.kr Photo Gallery 여기서 hacker.jpg를 복구해보았다. 낚였다.그래서 다른 파일들도 하나씩 봤는데 이런사진도 있더라.... 뭔지 모르겠어서 다시 처음부터 풀어봤는데 압축을 풀 때 Thumbs.db파일이 있는데 이미지들의 미리보기파일이다. 저 파일을 foremost라는 데이터 카빙툴로 복구를한다.foremost -i 1.zip이렇게 명령어를 입력하고 00000.zip이 나오는데 압축을 풀어준다. 순간 HWP파일인줄 알고 해봤는데 아무것도 없다 밑에 이미지 파일들이 잔득있는데 플래그 파일이있다.지난번 대회에서 이미지 선명도를 높이는걸 많이 했는데 그덕에 바로 알 수 있었다. tiM3_To_s4Y_go0dbye
solveme.kr What's this file? what 파일이 주어지는데 lzh로 압축된 파일이다. 확장자를 lzh로 바꾸고 실행하면 I'm Yours 노래 가사를 볼 수 있다. 이건 낚시였다 what 파일 밑에 보면 lzh가 하나 더있는데 빨간색으로 표시한 부분은 파일이름의 길이이다. 노란색부분은 이름이 들어가야하는데 00으로 되어있다. 아무 글씨나 한글자 넣어주면 압축을 풀 수 있다.
pwnable.kr coin1 NC로 접속을 해보면 위처럼 나온다. 위조된 동전을 찾으면된다.실제 동전의 무게는 10이고 위조된 동전은 9라는 값이 나오게된다.총 100개의 위조 동전을 찾으면 되는데 제한시간이 30초다. 코딩을해야한다.알고리즘을 하나 사용하는데 binary search를 이용하면 풀 수 있다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546# -*- coding: utf-8 -*-import timeimport socket def search(num, count): first = 0 last = num-1 for x in range(count+1): mid = (first+last)/2 data = " ".join(..