본문 바로가기

전체 글

(171)
DIMICTF 2017 write up (제일 인상깊었던 Reversing 200 점 문제만 올렸습니다 위에 파일이 원본입니다.) 전국청소년모의해킹대회 DIMICTF 2017 Reversing 200 문제 풀이입니다.해당 문제는 ELF 파일이며 입력값을 input 받고 연산한 값과 일치할시 Correct문을 뿜는 간단한 크랙입니다. IDA로 보면 위와 보이는것과 같이 v41 변수에 33개의 문자열을 입력 받는것을 볼수있습니다,그리고 밑으로 가보면 ptrace 함수는 디버깅시 -1 아닐시에는 0의 리턴값을 반환함으로 디버깅을 감지합니다 그냥 edb로 분석하면서 EAX리턴값을 0으로 바꿔주면 됩니다. 그다음 첫번째 반복문에서 입력한 값 하나하나와 rand() 값을 xor연산 해주고 있습니다 (v5는 0이므로 생략하겠습니다.)rand() 함수는 따..
ELF Simple Anti Reverser 흔히들 사용하는 Reversing 이라는 말은 Reverse Engineering, 역공학의 준말이다. 위키 백과에서는 역공학을 " 장치 또는 시스템의 기술적인 원리를 그 구조 분석을 통해 발견해 내는 과정이다 " 라고 정의한다. 또한 " 목적은 원본 생산의 절차에 관한 지식이 거의 없는 상태에서, 최종 제품을 가지고 디자인 결정 과정을 추론하는 것이다. " 라고 말한다. 어떤 행위를 하게 되면, 자연히 그 행위에 대한 결과가 발생한다. [ 행위 --> 결과 ] 라는 순서가 존재하는 것이다. 역공학이란, 행위가 결과를 만드는 일반적인 순서에 대조하여, 어떤 결과를 가지고 대상이 한 행동, 행위를 분석하는 과정이다. 전통적인 순학인 Forward Engineering 이 어떠한 개념을 실체화 시키는 것을 ..
[xcz.kr] prob34 - Get the key, If You Can [xcz.kr prob34]Get the key, If You Can 라는 제목의 xcz.kr 34번 문제입니다. 파일을 다운로드 해보면 두개의 파일이 나옵니다. exe파일을 먼저 실행 해보았습니다. 단순한 크랙같이 보입니다. 정확한 ID와 PW를 입력해주면 답이 나오겠네요 dat 파일을 열어보니 좋은 정보가 들어있는걸 알수있습니다. 정리해보면guest : 7C685308952F1AC56FD3CAA2B2CB2D5A : 01541admin : A0F60D70FAD9DC9846D971FD61D2B7A0 : 31337 이런 정보가 들어있다는 것을 알수있습니다. 보기에 guest 나 admin 같은 경우에는 id값으로 보입니다. 하지만 뒤에 있는 hash값과 숫자는 어디에 쓰일지 알아보도록 하겠습니다. exe파..
[Reversing.kr] Position Reversing.kr Position 문제 입니다. 알맞은 Name값과 Serial 값을 입력하면 풀리는 문제같네요. ReadMe 를 읽어보니 찾는 Name의 Serial 값은 76876-77776 이며 답은 여러개가 있을수 있다고 하네요Name의 마지막 글자는 p이고 Name의 글자수는 4글자라고 힌트를 줍니다. 올리디버거로 문제를 분석해본 결과 Correct 문과 Wrong 문 위에 있는 CALL문에서 연산코드가 진행된다는 것을 알수있었습니다. 첫번째 루프를 보니 Name값들이 a~z 범위 안인지 확인합니다. 두번째 루프를 확인해보니 Name 값들의 중복이 없는지 확인합니다. 세번째 비교 구문을 보니 Serial 글자수가 총 11글자 이며 Serial 가운데 문자가 ' - ' 인지 확인합니다. 그다..
[Wechall] Prime Factory Wechall.net 워게임 사이트의 첫번째 문제 Prime Factory입니다. 요약해보자면 각 자리수의 합계도 소수이면서 100만이 넘는 최초의 두 소수를 구하여라 입니다.정답 적을때는 만약 첫번째 숫자가 1,234,567 이고 두번째 숫자가 8,765,432 이면 12345678765432 으로 입력하라네요. [C code]1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include #include int main(){ int number = 1000000; int count = 0; int i, j, k; char str[100]; while (1) { if (count ==..
쉘코드 실습 보호되어 있는 글입니다.
Visual Studio exe 실행파일 dll 에러 방지 Visual Studio 2010 이상 버전에서 작성된 실행파일을 실행시킨다면 닷넷 프레임워크가 설치되어 있지 않은 환경에서는 DLL파일이 없다는 에러가 뜬다. (msvcr100.dll 등) 그 이유가 궁금해서 구글에 검색해본 결과 Visual Studio Project의 기본 설정값이 "동적 라이브러리" 링크로 설정되어 있어서 콘솔 프로그램인 exe에 해당하는 dll 라이브러리가 포함 안되어 있어서 참조 못하는 에러라고 한다. Visual Stdio 2010 에서 콘솔 프로그램을 만들때 "정적 라이브러리" 방식으로 컴파일 하도록하면 dll 오류를 방지할 수 있다. 방법11. 프로젝트 → 프로젝트 속성2. 구성속성 → C/C++ → 코드생성3. "런타임 라이브러리" 항목을 debug, release 모드..
1099 : [기초-종합+배열] 성실한 개미 문제 설명 경곽이는 생물 분야에 관심이 생겨 개미를 연구하고 있었는데,유원지에서 연구 주제인 왕개미를 발견하게 되었다.왕개미를 유심히 살펴보던 중 특별히 성실해 보이는 개미가 있었는데,그 개미는 개미굴에서 나와 먹이까지 가장 빠른 길로 이동하는 것이었다.개미는 오른쪽으로만 움직이다가 장애물을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다.(오른쪽으로 길이 있으면 다시 오른쪽으로 움직인다.)이에 호기심이 생긴 경곽이는 그 개미를 미로 상자에 넣고 살펴보기 시작하였다.미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지 오른쪽 또는 아래쪽으로만 움직였다.미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,먹이가 2로 표시되어 주어질 때, 똑똑한 개미의 이동 경..