목록분류 전체보기 (22)
Never Stop Running
class flask.request from flask import request * 유입 요청 데이터에 접근하기 위해서, 전역 request 객체를 사용할 수 있다. 플라스크는 유입 요청 데이터를 파싱해서 전역 객체로 그 데이터에 접근하게 해준다. request 객체의 속성과 메소드 dir이라는 내장 함수를 사용하여 확인하였다. ['__class__', '__delattr__', '__dict__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setatt..
실습 환경 Ubuntu 16.04.6 / 64bit 프로그램 버전 Python 2.7.12 sudo apt-get install python-pip -y 현재 Python 2.7이 설치된 상태에서 위의 명령어를 입력하여 pip을 설치하였다. 다음의 명령어로 python-dev와 python-setuptools가 모두 최신 상태로 설치가 된다. 하지만 pip --version이라고 하면 다음과 같은 오류가 발생한다. Traceback (most recent call last): File "/usr/bin/pip", line 9, in from pip import main ImportError: cannot import name main 찾아보니 pip 버전이 10.0.0 이상인 경우 나타나는 오류라고 한다..
단순하게 터미널에서 vmware를 실행시키려면 다음과 같은 명령어를 실행하면 된다. /usr/bin/vmware 하지만 vmware를 켜서 원하는 vm이미지를 열고 조작하는 활동을 하려면 vmrun 명령어를 이용할 수 있다. "/usr/bin/vmrun" /usr/bin/vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS] vmrun 간단하게 자주 이용할만한 몇 가지의 명령어를 예시로 둔다. 1. 가상머신 이미지 시작 /usr/bin/vmrun start ex. /usr/bin/vmrun start /home/gyoran/Desktop/Project/myvm.vmx 위의 명령어를 입력하면 자동으로 이미지가 시작된다. 2. 가상머신 상태 유지 /usr/bin/vmrun ..
Subprocess 모듈 : 파이썬 프로그램 내에서 새로운 프로세스를 실행하게 도와주는 모듈 import subprocess 사용 예 import subprocess path = "/bin/ls" target = "/home/gyoran/Desktop/Project" p = subprocess.Popen([path, "-ali", target], stout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() print out.decode('utf-8') communicate는 자식 프로세스의 출력을 읽어오고, 자식 프로세스가 종료할 때까지 대기함 도움 https://brownbears.tistory.com/214
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 15 문제 풀이 환경Windows 10 / Intel / x32dbg / HxD 문제 URLhttps://www.codeengn.com/challenges/basic/15 BASIC 15번 문제.문제는 Name이 CodeEngn일 때 Serial값을 구하는 것이다. 실행시키면 이러한 창이 뜬다. 여기에 'CodeEngn'을 넣고 맞는 Serial값을 넣으면 된다. [다음을 찾기] - [현재 모듈] - [문자열 참조]를 이용하여 'CRACKED'라는 문자열이 움직이는 곳을 찾았다. 분기문에 Break Point를 걸었다. 그리고 그 앞에 함수 호출하기 전에 Break Point를 걸었다. 임의의 값을..
* 리버싱 공부를 위한 문제풀이로 정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 14 문제 풀이 환경Windows 10 / Intel / x32dbg / UPX 문제 URLhttps://www.codeengn.com/challenges/basic/14 BASIC 14번 문제. 문제는 Name이 CodeEngn일 때 나오는 Serial값을 구하는 것이다. 일단 프로그램을 실행시키면 두 개의 입력값을 받는데, 위에 'CodeEngn'을 입력하고 밑에 Serial을 입력하면 될 것이다. 메모리 맵을 보니 UPX로 패킹되어있다. BASIC 5번에서 풀었던 것처럼 UPX툴을 사용하여 언패킹하고 프로그램 분석을 진행한다. [다음을 찾기] - [현재 모듈] - [문자열 참조]를 하고 'G..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 13 문제 풀이 환경Windows 7 / 32bit / Detect It Easy / ILSpy 문제 URLhttps://www.codeengn.com/challenges/basic/13 BASIC 13번 문제.문제는 프로그램 내의 정답을 찾는 것이다. 프로그램은 password를 입력받고 판별한다. 프로그램을 탐지해보니 C#으로 만들어졌다고 했다. .NET 디컴파일러인 'ILSpy'라는 툴을 다운받아 프로그램을 열었다.main을 보니 이러한 형태로 되어있었고, 내부의 암호화 된 Text를 프로그램 실행 시 복호화한 후 그 복호화 된 plainText와 입력받은 값을 비교하는 형태였다. 'ILSpy..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 12 문제 풀이 환경Windows 10 / Intel / x32dbg / HxD 문제 URLhttps://www.codeengn.com/challenges/basic/12 BASIC 12번 문제.문제는 Key값과 메세지 창이 뜰 때 Key값이 보이도록 값을 overwrite하는 위치의 주소를 알아내는 것이다. [다음을 찾기] - [현재 모듈] - [문자열 참조]를 이용하여 성공시 나타나는 문자열을 확인했다. 값을 받아오는 GetDlgItemInt 함수와 성공문자열이 나오기 전의 CMP에 Break Point를 걸었다.실행을 위해 임의의 값을 넣었다. Key = 123456. GetDlgItemInt..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 10 문제 풀이 환경Windows 10 / Intel / x32dbg / UPX 문제 URLhttps://www.codeengn.com/challenges/basic/10 BASIC 10번 문제.문제는 OEP를 구하는 것과, '성공'으로 가는 분기점의 OPCODE를 구하는 것이다.OEP를 구하는 방법은 BASIC 6번에서 자세히 설명했다. PUSHAD를 지나고 스택에 Break Point를 걸었다. JMP문 대신 PUSH로 주소값을 넣고 RET를 했다. 이렇게 가도 OEP는 맞다. 들어가서 보이는 첫번째 주소가 OEP이다. 그 상태에서 [다음을 찾기] - [현재 모듈] - [문자열 참조]를 하면 등..
* 리버싱 공부를 위한 문제풀이로정답을 찾는 것과는 조금 다를 수 있습니다. [CodeEngn] BASIC 08 문제 풀이 환경Windows 10 / Intel / x32dbg 문제 URLhttps://www.codeengn.com/challenges/basic/08 BASIC 8번 문제.문제는 OEP를 구하는 것이다.OEP를 구하는 방법은 BASIC 6번에서 자세히 설명했다. UPX로 패킹된 것을 확인했다. PUSHAD를 지나 스택 맨 위에 Break Point를 걸었다. JMP 문 위에서 멈추었다. JMP문을 따라가 보니 원본 코드를 찾을 수 있었다. 즉, 이 주소가 OEP이다.