본문 바로가기

Code Engn - Basic 18 RCE PEiD로 확인해보니 [Nothing found *] 라고만 뜬다. 불안했는데 패킹은 되어있지 않았고실패 or 성공의 조건 분기점을 찾아 브포를 걸고 확인해보니 CodeEngn일때의 Serial 값이 바로보였다. 더보기
Code Engn - Basic 17 RCE Name은 1글자래서 넣었는데 Key값에 넣어준 문자얼이 위그림처럼 바뀌었다. IDA로 열어보면 조건문 2개(35라인, 42라인)을 먼저 통과해야하는데, 길이값을 나타낸다.찾아내야하는 Name은 1글자이므로 바이너리의 해당 조건문을 찾아서 nop으로 바꿔주었다. 더보기
Code Engn - Basic 16 RCE C++로 되어있다. IDA로 열어보면.. 문자열 Name을 입력받고 58라인과 62 라인의 연산을 통해 세팅되는 v20과 Pssword로 입력받는 v19를 비교한다.Name의 길이값만을 가지고 연산하기 때문에 크게 어렵지 않다. 더보기
Code Engn - Basic 15 RCE Main함수의 시작부분부터 찾아서, 인증 성공-실패의 분기점이 되는 조건문을 찾아보니0x458831의 CMP EAX, DWORD PTR DS:[45b844] 이었다. 0x407774의 함수의 반환값으로 전달되는 EAX레지스터 값과 0x45b844에있는 값을 비교하는데,0x45b844에 있는 값은 Name으로 전달된 "CodeEngn"의 값을 이용하여 0x458760 함수의 결과 이후 세팅되는 것 같다. 아마도 쨋든 비교되어지는 0x407774함수는 serial로 입력된 값에 대하여 atoi와 비슷하게 동작하는데, 내부를 보면 0x와 같이 16진수도 계산이 되는듯 비교 조건문을 통과하면 크랙성공! 더보기
Code Engn - Basic 14 RCE UPX로 패킹되어있길래 언패킹부터 하고 시작하였다.성공 메세지 문자열을 기준으로 성공과 실패 출력 부분의 조건 분기문을 찾아보니 먼저 아래 입력받는 부분부터 시작되었다.각각 0x403038 과 0x403138에 입력받은 문자열을 저장하게 되는데, 이후 각각 다른 연산을 통해 나온 결과값을 내게 된다.이 두 결과값이 일치하면 성공, 다르면 실패. 먼저 첫번째 문자열의 연산과정0x401309 ~ 0x40132c의 루프 부분. IDA로 보면 아래와 같다. 두번째 문자열의 연산과정0x401383에 위치한 함수를 통해서 값을 반환하게 되는데 해당 함수를 보면 아래와 같다.읽어온 값에서 0x30을 뺀후 루프를 돌며 10을 곱하고, 이 값을 계속 더해나가는 것을 보니 atoi 함수와 같은 역할을 하는 것 같다. ID.. 더보기
Code Engn - Basic 13 RCE 그동안 디버깅해온 방법으로 디버깅하려했더니 제대로 디버깅이 되지 않았다.Microsoft Visual C# / Basic .Net -> C# 으로 되어있는데, C#은 컴파일시 IL(Intermediate Language)이라는 중간 형태의 코드로 변환하고실행시 이를 다시 CLR(.Net 플랫폼)을 통해 기계어로 변환된다고 한다. 일단 .Net 디컴파일러가 많은것같길래 ILSpy라는 프로그램을 통해서 디컴파일해보았다. 디컴파일해서 코드의 내용은 알 수 있었지만, 디버깅을 하지 못해 정확한 "text"의 값은 알 수 없었다.여기서 한참 헤맸는데, 풀이를 찾아보니 F12("pause") 이후 Execute till return 을 통해 접근하는 방법이 있었다. 일단 프로그램을 실행시킨후 해당 PID에 atta.. 더보기
Code Engn - Basic 12 RCE 더보기
Code Engn - Basic 11 RCE 더보기
DEFCON 2015 prequals - wwtw DEFCON 2015 prequals, wwtw FSB 문제, 라이브러리 정보 없음. [# 2015.06.22 -> 이해하기 쉽게 헷갈리는 변수명 수정] 메모리 보호기법은 PIE까지 다 걸려있다. 아래와 같이 게임? 하는 부분으로 시작한다. 20x20 맵 상에서 움직여서 E까지 움직이면 되는데, 스테이지를 5개 깨면 게임은 끝나고 인증부분으로 넘어간다. 게임 자체에는 공격벡터가 없다. 이 부분을 자동화해서 코딩해야 좀 더 분석이 편해졌을텐데, 게임 부분은 직접 움직이는 쪽으로 코딩해서 분석에 오래걸렸다. 나중에 자동화 코드도 짜봐야겠다. 게임이 끝나면 위와 같은 인증함수로 넘어가는데, Key값을 얻어내는건 어렵지않다. Key값은 "UeSlhCAGEp" 이다. 문제로 주어진 바이너리에는 FSB 취약점이 존.. 더보기
Plaid_CTF 2014 - ezhp 보호되어 있는 글입니다. 더보기