Not null
  • 홈
  • IT정보
  • C
  • Assemble
  • Python
  • System programing
  • Window
  • Linux
  • System
  • Web
  • Network
  • Forensic
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • All (102)
      • network (14)
      • ARM (2)
      • Programing (41)
        • C (3)
        • Assemble (0)
        • Python (8)
        • JavaScript (1)
        • Systemprograming (0)
        • 자료구조, Algorithm (20)
        • Web (4)
        • Git (2)
        • DataBase (1)
        • 운영, 배포, 관리 (2)
      • OS (4)
        • Window (0)
        • Linux (1)
        • theory (3)
      • etc, (3)
      • Hacking (18)
        • System technique (3)
        • Web technique (6)
        • Reversing (9)
      • wargame (11)
      • project (5)
        • android (2)
        • Automated vulnerability (0)
        • Vulnerability analysis (1)
        • Malware Analysis (0)
        • Code Virtualized (1)
      • school.study (1)
  • 홈
  • 태그
  • 방명록
Hacking/Reversing

Self-modifying code [자체 수정 코드]

이번에 리버싱을 하면서 Self-modifying이라는 새로운 신기한 기술을 하나 배웠다. Self-modifying은 자체 수정 코드로써 실행 도중에 자신의 기계어 명령 코드를 주입시켜 코드를 바꾸는 걸 말한다. Self-modifying은 코드영역 메모리에 W(write)권한이 있어야 동작한다. w권한을 얻어오려면 바이너리 PE를 수정하는 방법, 프로그램 내에서 API를 사용해서 얻어오는 방법 등이 있다. 긴 말 필요없이 예제를 통해 보겠다. 예제는 reversing.kr 의 replace 문제이다. 문제를 리버싱하다가 이러한 코드를 보았다. 바로 밑의 004046A9 주소를 보면 알 수 있듯이, 40466F는 함수의 주소이다. 그런데 [그림 1]에서 코드는 함수 주소의 포인터 안에 어떠한 상수 값(..

2020. 8. 28. 16:46
Hacking/Reversing

Abex's Crackme #5 분석

분석 앞 부분은 win32의 폼을 만드는 과정과 text를 입력받습니다. 저는 그냥 켜서 나오는 text(Enter your serial)를 그대로 입력 하였습니다. 그리고 0040106C에 오면 GetDlgItemTextA() GetVolumeInformationA() lstrcatA() 를 순서대로 호출한다. 간단하게 말하자면 1. GetDlgItemTextA()는 우리가 입력한 문자열을 00402324에 저장하고 문자열의 길이를 반환한다. (필자의 경우 Enter your serial) 2. GetVolumeInformationA()는 자신의 로컬디스크의 정보를 가져온다. (시리얼, 디스크볼륨네임 등) 3. lstrcatA()는 문자열 결합 함수이다. 004225C라는 주소에 저장되어있는 문자열과 ..

2019. 12. 2. 11:37
Hacking/Web technique

디렉터리 리스팅(directory listing)취약점

구글 검색 Apache : index of Tomcat : Listing for IIS서버: _vti_cnf , 부모디렉터리 이동 기타 : asp, jsp, php.bak 그외: phpinfo(), test.php, set rs

2017. 2. 5. 21:10
Hacking/Reversing

PE File Format - (1)

PE File이란? PE파일이란 Portable Executable의 약자로써 현재 가장 많이 사용되고 있는 운영체제인 Windows에서 사용되는 실행 파일 형식 이다. PE에는 파일을 실행시키기 위한 정보들이 기록되어 있는데, 파일실행을 시키면 PE에서 정보를 읽어와 바이너리를 메모리에 올리기 전에 데이터를 작업하는 과정을 거친다. 이 과정에서 PE가 손상이 되어있다면 파일이 실행되지 않기때문에 PE는 중요하다. 기존 PE는 32비트 형태의 실행파일만 의미하며 64비트 형태의 실행 파일은 PE+ 또는 PE32+ 라고 부른다. PE File 의 종류 종류 주요확장자 실행 계열 EXE, SCR 드라이버 계열 SYS, VXD 라이브러리 계열 DLL, OCX, CPL, DRV 오브젝트 파일 계열 OBJ 정확히..

2016. 9. 26. 23:17
Hacking/System technique

PLT, GOT, Dynamic Linker

Dynamic Link(동적 링크) 로 컴파일 되었을때의 컴파일을 동적 컴파일 이라고 한다. 동적컴파일과 정적컴파일(static complie)의 차이는 공유라이브러리의 사용에 있다. 논문을 썼는데 파일 이미지를 빽업 안해뒀다.. 동적컴파일이 된 파일은 PLT와 GOT를 가지게 되는데 을 보게되면 정적 컴파일된 파일엔 라고 되어있고, 동적 컴파일 된 파일엔 라고 되어 있을 것이다. 이것이 PLT, GOT라는 것인데. 동적 컴파일된 파일에서 함수는 처음 호출될 때 PLT-GOT-PLT순으로 호출이 되고 두번 째 호출이 될때는 처음 GOT의 주소를 기억 하고 바로 호출이된다. printf("a\n"); // PLT - GOT - PLTprintf("b\n"); // 바로 호출 함수가 호출될때의 과정을 asm..

2016. 5. 24. 21:16
Hacking/Reversing

[리버싱] 함수의 에필로그, 함수 호출 규약

리버싱을 하려고 디버거에 바이너리를 올려놓고 제일 먼저 해야할것은 각 함수가 뭘하는지. 역할을 파악하는 것이다 그러고 난 뒤엔, 어떤식의 함수인지 인자는 몇개를 전달하는지에 대한정보를 파악 해야한다 대체로 함수는 push ebpmov ebp,esp ~ mov esp,ebppop ebp 으로 시작과 끝을 맺으며 이 에필로그가 보인다면 하나의 함수라고 보면된다. 이 어셈블리코드는 스택을 쓰기위함이다 함수의 호출 규약 함수 호출 규약에는 자주쓰이는 4가지 호출규약이 있다. _cdecl , _stdcall , _fastcall , _thiscall 함수 호출 규약을 알게되면, call문을 통해 인자와 함수에 대한 중요내용을 파악하기 쉽기 때문이다. 먼저 _cdecl 방식을 살펴보겠다. _cdecl방식은 C언어 ..

2016. 5. 11. 20:38
  • «
  • 1
  • 2
  • 3
  • »

공지사항

전체 카테고리

  • All (102)
    • network (14)
    • ARM (2)
    • Programing (41)
      • C (3)
      • Assemble (0)
      • Python (8)
      • JavaScript (1)
      • Systemprograming (0)
      • 자료구조, Algorithm (20)
      • Web (4)
      • Git (2)
      • DataBase (1)
      • 운영, 배포, 관리 (2)
    • OS (4)
      • Window (0)
      • Linux (1)
      • theory (3)
    • etc, (3)
    • Hacking (18)
      • System technique (3)
      • Web technique (6)
      • Reversing (9)
    • wargame (11)
    • project (5)
      • android (2)
      • Automated vulnerability (0)
      • Vulnerability analysis (1)
      • Malware Analysis (0)
      • Code Virtualized (1)
    • school.study (1)
애드센스 광고 영역

블로그 인기글

Powered by Privatenote Copyright © Not null All rights reserved. TistoryWhaleSkin3.4

티스토리툴바