본문 바로가기

전체

(242)
Hex 값을 읽기 위한 모듈 C++, Python 포렌식을 하다보면 파일을 파싱해야 하는 프로그램을 작성해야 한다.파일을 열고 오프셋을 이동시키고 헥사값을 읽어야 하는데이 헥사 값이 byte int, string, 유니코드(unicode or wstring) 등 다양한 형식을 가지고 있을 것이다. 좀 더 쉽게 개발을 하기 위해 모듈을 개발하였다. C++로 개발할 경우 해당 헤더 파일을 임포트 시킨 뒤 C++코드의 첫줄에 #include "AmericanoHexReader.h" 를 작성하기만 하면 된다.사용 방법은 헤더 파일에 작성했다. 파이썬 코드도 함께 포함시켰다. 모두 파일 내 첫줄에 주석을 작성하였으므로 보고 참고하면 될 것 같다.사용에 궁금증이 생기시면 americano@korea.ac.kr로 메일 주시면 됩니다.
[XOR 난독화 관련 논문] Analysis of the use of xor as an obfuscation technique in a real data corpus 보호되어 있는 글입니다.
MySQL 1. 세미콜론 MySQL에서 세미콜론은 명령어를 분리하거나 끝날 때 사용한다.만약 명령구문이 제대로 끝나지 않을 경우 다음과 같은 프롬프트를 볼 수 있다. MySQL 프롬프트 의미 mysql> MySQL이 준비되고 명령어를 기다린다. -> 명령어의 다음 줄을 기다린다. '> 작은 따옴표로 시작하는 다음 문자열을 기다린다. "> 큰 따옴표로 시작하는 다음 문자열을 기다린다. `> 역따옴표로 시작하는 다음 문자열을 기다린다. /*> /*로 시작하는 다음 주석을 기다린다. 2. 명령어 취소 명령어를 취소하고 싶으면 CTRL+C는 절대 입력하면 안된다.\c와 리턴을 입력하면 명령어가 취소 된다. 3. MySQL 명령어 명령어 매개 변수 의미 ALTER database, table 데이터베이스나 테이블을 변경 B..
PHP 문법 PHP언어가 C랑 비슷한 점이 많이만 차이점 또한 존재한다.그 부분을 정리함으로써 좀 더 개발의 편리성을 향상시키도록 한다. 1. html 내에 php 포함 1) php 파서 호출 2. php의 구조 1) 주석 C와 동일하다 : /* */ 또는 // 2) 변수 모든 변수에 $ 심볼을 붙여준다.전역변수 : global을 앞에 추가로 붙여준다.고정변수 : static을 앞에 추가로 붙여 준다. - 변수 선언 방법 - 2차원 배열 선언 방법 - 변수 네이밍 규칙 변수의 시작은 알파벳이나 밑줄로 해야 한다.변수의 이름이네는 a-z와 A-Z, 0-9, 밑줄만 쓸 수 있다.변수 이름에는 공백을 넣을 수 없다. 밑줄을 이용!!변수 이름은 대소 문자를 구분한다. 3) 연산자 C와 동일하다 : + - % / ++ -- ..
웹 개발 환경 설정 1. Cafe24 호스팅 신청 많은 호스팅 업체가 있지만 처음 시작하기에 가장 저렴한 cafe24를 선택했다. 10G광호스팅 full SSD를 선택하고 가장 저렴한 절약형을 선택하였다. 신청이 완료된 뒤 메일을 열어보면 다음과 같은 메일이 도착했을것이다. [세팅완료] 카페24 호스팅 셋팅이 완료되었습니다. 2. 원격 접속 1) SSH 접속 나는 윈도우 사용자이므로 putty를 이용해 접속할 것이다. https://www.dropbox.com/s/urffiwnb8hwfr3h/putty.exe?dl=1 위의 링크에서 putty를 다운받자. (나의 드롭박스 주소이다) 위와 같이 입력한 뒤 save 버튼을 눌러 이후에 접속할 때 편리하게 셋팅한다.이후 하단 우측에 있는 open 버튼을 클릭해 접속하도록 한다. ..
증거 수집 출처 : http://forensic-proof.com/ (김진국강사님의 디지털포렌식 강의을 듣고 정리한 내용입니다.) 1 온라인 수집 1.1 라이브데이터 순위 구분 수집항목 1 비활성 프리패치, 최근 캐시 파일 2 활성 네트워크 정보 3 활성 물리메모리 4 활성 프로세스 정보 5 활성 사용자 로그온 정보 6 활성 시스템 정보 7 활성 네트워크 인터페이스 정보 8 활성 작업 스케줄러, 클립보드, 자동실행정보 9 비활성 MBR, VBR, 파일시스템 메타데이터, 파일시스템 로그 10 비활성 레지스트리, 이벤트 로그 11 비활성 바로가기, 점프목록 12 비활성 %SystemRoot% 하위 중요 파일 13 비활성 웹 브라우저 아티팩트 14 활성 네트워크 패킷 시스템 전원이 켜져 있는 상태에서 수집할 수 있는데이..
해커스쿨 FTZ Level11 (버퍼오버플로우 : 기초) + GDB 설명 ID : level11Password : what!@#$? 힌트 : #include #include int main( int argc, char *argv[] ){ char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str );} 문제를 풀기 전에 : gdb 사용법 1. 실행 gdb 프로그램(또는 프로세스번호) -q 또는 -silent 또는 -quiet : 실행 시 쓰레기 설명글 제거 2. 종료 quit (또는 q) 컨트롤 + D 3. 폭조절 set width 값 set height 값 4. 디버깅 중간에 쉘 명령어 사용하기 shell 명령어 (경로는 프로그램 위치와 같음) 5. 팁 탭 : 자동 명령 생성 (중복 항목이 있을 경우..
해커스쿨 FTZ Level10 (공유 메모리 취약점) ID : level10Password : interesting to hack! 힌트 : 두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다. 그 대화방은 공유 메모리를 이용하여 만들어졌으며, key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여 level11의 권한을 얻어라 - 레벨을 완료하셨다면 소스는 지우고 나가주세요. 문제를 풀기 전에 : 공유메모리란 ? 1) 공유메모리란 여러 프로세스가 함께 사용할 수 있는 메모리이다. 2) 이 공유메모리를 이용하면 커널에 내려가지 않고 프로세스끼리 통신을 할 수 있으며 같은 데이터 공유를 할 수 있다. 3) 프로세스가 공유 메모리를 사용하기 위해선 커널에 요청을 해야 한다. 4) 프로세스가 지워져도 해당 공유메모리는 잔재한다. shm..