분류 전체보기 (171) 썸네일형 리스트형 xcz.kr PROB2 xcz.kr 의 PROB2다.제목이 Listen Carefully! 고 Auth key 는 대문자라고한다.Download Here에 일단 들어가보자. 5초짜리 짧은 wav파일이 등장한다. 이걸 다운로드 받자. 다운로드 받고 필자는 GoldWave로 열었다.다른 툴이 있다면 다른 툴로 열어도 좋을 것 같다.딱 보면 조금 긴 부분과 짧은 부분으로 나누어져있다.wav파일을 들으면서, 그리고 파일 이름으로 추측하면이건 모스부호일 것이다. 저 GoldWave에 올려진 파일의 막대기?를 맞춰서모스부호로 해독하면 답이 나올것이다. 모스부호 코드는 이걸 보면서 해독하면 되겠다. 끝. xcz.kr PROB1 xcz.kr 의 PROB1이다. Why So Serious? 라고 적힌 사진이 있고제목은 End Of Image이다.단순 카빙문제이다. 복잡하지않아서 손카빙으로 진행했다. 일단 사진파일을 다운받았다.이제 HxD로 열어보자. 열어봤다. 이 파일은 png 파일이기때문에 파일헤더가 89 50 4e 47인데png파일은 마지막에 끝나는 지점이 IEND~ 로 끝나는 특징을 지닌다. 이 IEND~ 부분을 찾으면 다른 파일의 시작이든, 그 끝부분에 무언가 있겠지란 생각으로 찾아갔다. 찾아간 모습인데, 바로 옆에 FF D8 FF E1 이 보인다.저건 jpg 파일의 헤더부분이다. 그렇다면 이 png파일 뒤에 jpg파일을 붙여놨다고 생각할 수 있다.이제 카빙을 진행하면 저 jpg파일이 추출돼 나올것이다.손카빙을할지 툴을 쓸.. 04. 함수 호출 규약 04. 함수 호출 규약 일단 함수 호출 규약에는 3가지 방식이 있다.시작하기에 앞서 함수 호출 규약을 알아보기위해 사용한 코드이다. 12345678910111213141516171819202122232425#include int __cdecl test1(int a1, int a2, int a3) { int result = a1 + a2 + a3; return result;} int __stdcall test2(int a1, int a2, int a3) { int result = a1 + a2 + a3; return result;} int __fastcall test3(int a1, int a2, int a3) { int result = a1 + a2 + a3; return result;} int main.. wargame.kr keypad_crackme wargame.kr 의 keypad Crackme 문제다. start를 눌러 들어가보면 저번 easy_crack 처럼 패스워드를 찾아보라고한다. 다운로드 받아서 실행시키면 이런 네모박스에키패드, AUTH, BYE를 누를 수 있게 되어있다. 이런식으로 숫자를 누르고 AUTH로 인증하는 식이다. 당연히 111을 넣었을 땐 틀리다고 한다.그래서 올리디에 던져서 조금의 분석을 진행해보았다. 여기가 핵심 부분인데, 입력하는 값을 구할 수 있다.이 부분에서 eax는 무조건 7로 세팅되고, 1이 더해서 8이 된다.그리고 그 eax에 FFFCECC9라는 값을 곱한 뒤에그 값을 입력한 값이 저장되어있던 edi에 더해주고edi와 0BADBABE를 비교해서 맞으면 성공문 틀리면 실패문을 출력한다.대략적인 분석과 조금의 계산.. wargame.kr easy_crackme wargame.kr의 Easy_Crackme 다. 간단한 리버싱 문제란다. Start를 눌러 들어가보면 패스워드를 찾아보세요! 라고 파일을 하나 준다. 파일을 다운받았다. 실행시키면 문자열을 입력받고 check해서 맞는지 틀리는지를 나타낸다.아무 숫자나 입력해서 check를 눌러보자. 틀렸단다. 이제 이걸 가지고 OllyDBG로 프로그램을 실행시켜보자. OllyDBG로 실행시켰다. 문자열 검색으로 nono.. 를 가보자.저 부분에 아마도 분기문이 있을것이라고 생각했다. 분기문이 있었고, 그 위에 문자열들을 비교했는데한 가지 아주 조금 까다로웠던 점은문자열을 나눠서 비교한다음 합친다는 것이다.한마디로 비교 함수가 여러개이다.그 비교 함수들을 다 찾고, 비교하는 문자열들을 찾아서 결합하면답을 찾을 수 있다... wargame.kr WTF_Code wargame.kr의 WTF_CODE 문제다. 프로그래밍 언어인데이걸 읽을 수 있냐? 라고 물어본다. Start를 눌러서 들어가보자. 이게 소스코드인지 모르겠단다. 아무것도 안보인단다.source_code.ws를 다운받아보자. 실제로 HxD로 열어보면 이게 도대체 뭐인지 모르겠다.뭔 스페이스바, 탭, 개행만 가득하다.그래서 구글신의 힘을 빌려서 ws 확장자가 무슨 파일을 나타내는지 좀 알아봤는데 이런게 있단다. 4월 1일 만우절날 공개된 난해한 프로그래밍 언어란다..사실 이것만 알면 되는 문제다. http://ideone.com/위 사이트에서 화이트 스페이스 언어를 컴파일 해볼 수 있다. 끝 CodeEngn advance 9 9번문제다. Password를 구해오라고한다. 실행시키고 일단 유저네임, 패스워드 다 아무런값이나 넣고 실행해보면틀렸다고 구문이 출력된다. 이제 이걸 가지고 올리디에서 분석을 진행하자 스트링 검색을 켜보면 이렇게 나온다.저 DonaldDuck은 뭐지?라고 생각할 수 있는데저게 바로 Username이다. 이 비교문에서도 DonaldDuck과 비교하는 걸 알 수 있고이것 말고도 실행시키자마자 왼쪽 아래부분의 헥스값 표시부분을 보면Username은 DonaldDuck이라고 나온다. 중요한건 패스워드를 찾는 것이다. Username에 대한 검사를 마친뒤에디버깅을 계속 진행하다보면 이렇게 내가 입력한 0x457 과원래의 패스워드 값처럼 보이는 0x0088228f 를 비교하는 걸 알 수 있다.원래의 패스워드 값은 .. CodeEngn advance 8 8번 문제다. 키 값이 "5D88-53B4-52A87D27-1D0D-5B09"일 때 Name을 구하라고한다. 일단 실행시켜서 Name에 아무값이나 넣고Key 값에 "5D88-53B4-52A87D27-1D0D-5B09"를 넣고 Check it!을 해보자 더 많이 치란다.. 저번에 그 문제처럼그래서 올리디로 던져서 분석했다 일단 스트링 검색으로 살펴보면 Well Done! 이 보인다.저 곳으로 이동해보자 이동해서 위로 올라가면서 살펴보면 이렇게 저번처럼글자수 비교루틴이 있다. 저 글자수 비교 부분의 수를 좀 패치해주자 2글자라고 햇으니 2와 비교하게끔 패치했다.이제 최소 2글자를 입력해야 프로그램이 정상적으로 동작할 것이다. 다음은 키 값을 만들어내는 루틴인데저번이랑 그렇게 다르지않다.하나 다르다면 이번에는.. 이전 1 ··· 15 16 17 18 19 20 21 22 다음