목록분류 전체보기 (22)
Never Stop Running
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 07 문제 풀이 환경Windows 10 / Intel / x32dbg / HanConv 문제 URLhttps://www.codeengn.com/challenges/basic/07 BASIC 7번 문제.문제는 C드라이브 이름이 CodeEngn일 경우 시리얼 생성 시 이 이름이 어떤 것으로 변경되는지 알아내는 것이다.이것으로 보아 C드라이브 이름을 가져오고 그 값을 변경하여 시리얼을 생성하는 것을 알 수 있다. [다음을 찾기] - [현재 모듈] - [문자열 참조]를 보면 성공시 뜰법한 문자열을 볼 수 있다. 더블클릭하여 이 문자열을 스택에 PUSH 해주는 곳으로 이동한다. 위에 보이는 문자열 비교 함수..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 06 문제 풀이 환경Windows 10 / Intel / x32dbg / UPX 문제 URLhttps://www.codeengn.com/challenges/basic/06 BASIC 6번 문제.문제는 OEP와 Serial을 찾는 것이다.OEP란 Original Entry Point를 말한다. 패킹된 파일을 실행할 때 자동적으로 시스템 내부에서 언패킹을 한다. 언패킹이 끝나면 복구한 원본코드를 동작시켜야 하는데 이 원본코드의 Entry Point를 OEP라고 한다. UPX OEP 찾는 방법 UPX 패커는 PUSHAD/POPAD 명령어를 사용한다. 보통 POPAD 명령어 밑에 점프문이 있고, 이 점프문..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 05 문제 풀이 환경Windows 10 / Intel / x32dbg / UPX 문제 URLhttps://www.codeengn.com/challenges/basic/05 BASIC 5번 문제.문제는 프로그램의 등록키를 찾는 것이다. 프로그램을 실행시키면 다음과 같은 창들이 나타난다. 메모리 맵을 보니 UPX로 패킹된 것을 확인할 수 있다. UPX를 이용하여 언패킹한다. 언패킹 한 프로그램을 열어보니 정상적으로 언패킹 되었다는 것을 알 수 있다. 코드 부분에서 오른쪽 마우스 클릭을 하여 [다음을 찾기] - [현재 모듈] - [문자열 참조]를 누르면 그 코드부분에 사용된 문자열들이 나온다.문자열을 찾..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 04 문제 풀이 환경Windows 10 / Intel / x32dbg / HanConv 문제 URLhttps://www.codeengn.com/challenges/basic/04 BASIC 4번 문제.문제는 디버거를 탐지하는 함수명을 찾는 것이다. 일단 실행시키면 정상이라는 문구가 계속 나온다. 일단 저 문구가 나오는 곳을 찾아본다. 저 문자가 while문으로 계속 나타나기 때문에 어떤 함수에 딱 멈추게 된다. 그러므로 F9를 눌러서 멈추면 그 때부터 문자열이 계속 나온다. 디버깅중이기 때문에 '디버깅 당함'이라는 문구가 계속 나타난다. 그래서 이쪽에 Break Point를 걸었다. 다시 시작하여 ..
* 리버싱 공부를 위한 문제풀이로 정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 03 문제 풀이 환경Windows 10 / Intel / HxD 문제 URLhttps://www.codeengn.com/challenges/basic/03 BASIC 3번 문제. 문제는 스트링 비교함수 이름을 찾는 것이다. HxD라는 헥사 에디터를 사용하여 함수 이름이 모여있는 곳 쪽을 보니 딱 문자열 비교 함수 이름이 적혀있다.
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다.[CodeEngn] BASIC 02 문제 풀이 환경Windows 10 / Intel / HxD 문제 URL https://www.codeengn.com/challenges/basic/02 BASIC 2번 문제.문제는 실행이 되지 않는 파일의 패스워드를 찾는 것이다.HxD라는 헥사 에디터로 실행파일을 열어서 문자열을 쭉 읽어보았다. 'Yeah, you did it!'이라는 성공할 때 나타날법한 문장 뒤로 비밀번호같은 문자열이 보인다.
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 01 문제 풀이 환경 Windows 10 / Intel / x32dbg 문제 URLhttps://www.codeengn.com/challenges/basic/01 BASIC 1번 문제.문제는 HDD를 CD-Rom으로 인식시키기 위한 GetDriveTypeA 함수의 리턴값을 찾는 것이다.일단 HDD를 CD-Rom으로 인식시키는 방법들을 찾아본다. 일단 파일을 실행시키면 이러한 창 두개가 뜬다. x32dbg로 열어본다.참고로 [설정] - [환경설정] - [이벤트]에서 시스템 중단점, TLS 콜백을 체크 해제한 상태이다.GetDriveTypeA 함수가 보이기 때문에 함수 내부로 들어가기 전에 Break ..
Visual Studio 2017을 이용하여 Assembly 코딩하기 1. http://kipirvine.com/asm/examples/index.htm에 접속하여 "Example programs and link library source code for the Seventh Edition"를 클릭하여 파일을 다운받는다. 2. 다운받은 파일을 클릭하여 설치한다. 경로는 "C:\Irvine\"으로 둔다. 3. 설치 뒤에 Visual Studio를 연다. 그리고 [파일] -> [새로 만들기] -> [프로젝트]나 Ctrl+Shift+N을 통해 새 프로젝트를 만든다. 4. 오른쪽 마우스로 프로젝트 명을 클릭하여 [추가] -> [새 항목]이나 프로젝트 명을 클릭한 상태에서 Ctrl+Shift+A를 통해 새 항목을..
힌트를 보니 /etc/xinetd.d에 백도어를 심어놓았다고 한다.이 경로로 이동해보니 backdoor라는 파일이 있었다. 파일을 열어보니 finger 서비스가 있었다.(finger 서비스에 대한 자세한 내용)user가 level5이고, server가 /home/level4/tmp/backdoor이기 때문에 level5로 server가 실행된다. server 위치로 가서 backdoor.c 파일을 코딩한다. C언어로 코딩하였고, 이 프로그램 작동 시 my-pass라는 명령어를 실행한다. backdoor.c 파일을 backdoor로 컴파일한다. finger 명령어를 치면 현재 사용하고 있는 사용자 정보가 나온다.여기서 finger @localhost 명령어를 사용하면 실행이 된다. NextID : leve..
힌트를 보니 autodig라는 파일의 소스를 보여주고 있다. 이것을 이용해 level4의 권한을 얻으라는 것을 보아 이 파일에는 level4의 setuid가 걸려있다는 것을 알 수 있다. 그리고 소스파일을 분석해보면 autodig를 실행함과 동시에 인자값을 넣는데 argc = 2가 아니라면 "Auto Digger Version 0.9 Usage : autodig host"라고 출력된다. 만약 인자값이 argc = 2라면 "dig @ argv[1] version.bind chaos txt"라는 것이 system함수를 통해 실행된다. 그러니까 argc = 2인 상태로 쉘을 띄우거나 my-pass를 해야 한다.그러려면 두 가지 이상의 명령어를 한꺼번에 하는 방법을 알아야 하는데 이는 세미콜론(;)을 통해 할 ..