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/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/Reversing

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

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

2016. 5. 11. 20:38
Hacking/Reversing

[리버싱] Visual Basic 파일 특징

1. VB 전용 엔진사용 - VB파일은 MSVBVM60.dll 이라는 VB전용 엔진을 사용한다. (ex. 메시지박스를 출력하고 싶을 때 VB소스코드에서 MsgBox() 함수를 사용한다. VB컴파일러는 실제로 MSVBVM60.dll !rtc MsgBox()가 호출 되도록 만들고 이 함수 내부에서 Win32 API인 user32.dll !MessageBoxW() 함수를 호출해준다. 2. N(Native) code, P(Pseudo) code의 구분 - VB파일은 컴파일 옵션에 따라서 N code와 P code로 컴파일이 가능함. - N code는 일반적인 디버거에서 해석 가능한 IA-32 인스트럭션을 사용하지만, P code는 VB엔진으로 가상머신을 구현하여 자체적으로 해석 가능한 명령어를 사용한다. VB ..

2016. 5. 4. 17:15
Hacking/Reversing

[리버싱] IA-32 레지스터의 종류 (기초)

IA-32 레지스터는 Basic program execution registers // 오늘 배울 레지스터x87 FPU registersMMX registersXMM registersControl registersMemory type range registersMachine specific registersMachine check registers... 등등 많은 레지스터들이 존재하며 오늘은 Basic program execution registers을 알아보겠다. Basic program execution registers Basic program execution registers 안에서도 사용용도에 따라 레지스터가 나뉘게 된다. 1. General Purpose Registers (32bit - 8..

2016. 4. 28. 21:12
  • «
  • 1
  • 2
  • »

공지사항

전체 카테고리

  • 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

티스토리툴바