본문으로 바로가기

고퍼

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 방명록
관리자
  • 블로그 이미지
    G0pher

    Information Security

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

API

http://carpedm20.blogspot.kr/2012/09/api.html 위의 사이트에서 가져온 내용입니다 API(Application Programing Interface)란? OS나 프로그래밍 언어가 제공하는 기능을 응용 프로그램이 제어할 수 있도록 만든 인터페이스를 말한다 자주 볼 수 있는 API( API명 뒤에 붙는 A는 32bit, W는 wide) 파일 생성 및 열기 CreateFile 파일 입출력 ReadFileWriteFile 파일 접근 SetFilePointer 시스템 디렉터리 가져오기 GetSystemDirectory .ini 파일 관련 함수 GetPrivateProfileStringGetPrivateProfileIntWritePrivateProfileStringWritePriv..

Study/reversing 2017. 8. 24. 04:17

리틀 엔디언 & 빅 엔디언

디버거를 사용하다보면 덤프창에서 의문점이 생길 수 있다. 위와 같이 402030이라는 주소에 16진수 12345678을 넣으라는 명령을 수행하도록 해보자 현재 덤프창에는 아무 값도 들어있지 않은 상태이다 이제 실행해보면 아래와 같은 결과가 나온다 12345678이 들어가야 하는데 78 56 34 12 이렇게 들어가 버렸다 이게 어떻게 된 일일까? 여기서 나오는 개념이 리틀 엔디언과 빅 엔디언이다 엔디언(Endianness)이란? 1차원 공간에 여러개의 연속된 대상을 배열하는 방법을 뜻하며크게 큰 단위가 앞으로 오는 빅 엔디언과 작은 단위가 앞으로 오는 리틀 엔디언으로 나눌 수 있다네트워크 프로토콜은 빅 엔디언을 따르므로 리틀 엔디언을 사용하는 환경에서는 이러한 방식을 잘 맞추어주어야 한다 16진수 123..

Study/reversing 2017. 8. 24. 03:09

Hello 출력결과 바꿔보기

위와같이 hello를 출력하느 프로그램을 만들어보자 잘 실행된다. 이제 이 프로그램이 hello가 아닌 다른 문자를 출력하도록 만들어보자 우선 main함수가 구동되는 코드를 찾아야한다 검색을 통해 printf를 참조하는 부분을 찾아내거나 hello라는 문자열을 찾으면 쉽게 main함수를 찾아낼 수 있다 이제 이 hello라는 값이 담겨져있는 404000이라는 주소를 찾아가보자 물론 404000이라는 주소를 다른 주소로 바꾸면 hello가 아닌 문자열을 출력할 수 있지만 원하는 문자열을 출력하기 위해서 찾아가보자 우리가 원하는 데이터가 존재한다 다른값으로 바꾸어보자 abcd로 바꾸어보았다 다시 코드영역을 살펴보니 주소안에 담긴 데이터가 abcd로 바뀐것을 친절하게 보여준다 이제 앞으로 이 프로그램이 실행될..

Study/reversing 2017. 8. 22. 05:23

어셈블리어 명령어에 대해 알아보자

[ 어셈블리어 간단한 명령어 모음 ] mov : movelea : load address to registerinc : plus 1dec : minus 1add : addsub : subtractnop : nothingcmp : comparetest : AND logic to find zerojmp : jump Unsigned jump(=)je : jump equaljne : jump not equaljz : jump zerojnz : jump not zero(>)ja : jump abovejae : jump above or equaljna : jump not abovejnae : jump not above or equal()jg : jump greaterjge : jump greater or equal..

Study/reversing 2017. 8. 22. 04:28

레지스터에 대해 알아보자

레지스터란? CPU 안에있는 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터를 담고있는 영역이 레지스터이다 레지스터의 종류 올리디버거에서 볼수 있는 아래와 같은 레지스터들이 각각 어떤 역할을 하는지 알아보자 위의 레지스터들은 다양한 레지스터 종류중 범용레지스터와 인덱스레지스터 그리고 포인터레지스터라고 불린다 현재 32bit의 환경이기 때문에 레지스터명의 첫글자가 E(Extended : 확장된)로 시작하는것을 볼 수 있다.64트의 경우 R(Register)로 시작하여 32비트의 레지스터를 포함한다 각각 수행하는 역할이 다른데 자세히 알아보자 AX(Accumulator) : 연산에 사용된다 BX(Base) : 메모리 주소 지정시 사용 CX(Counter) : 반복과 같은 상황에 쓰임 DX(Data) :..

Study/reversing 2017. 8. 21. 21:29

어셈블리어에 대해 알아보자

어셈블리어란? 프로그래밍 언어중 하나이며, 기계어에서 한단계 위인 저급언어이다 어셈블리어의 구조 어셈블리어의 기본적인 형태는 명령어(OpCode)와 오퍼랜드(Operand : 피연산자)로 이루어져 있으며 콤마(,)로 오퍼랜드를 구분한다명령어를 오퍼레이터(Operator : 연산자)라고 부르며 이러한 오퍼레이터의 종류에 따라 오퍼랜드의 개수가 다르다 어셈블리어 문법의 종류 어셈블리어는 사용하는 어셈블러가 어떤 문법을 따르냐에 따라 사용하는 문법이 달라진다.크게 인텔(Intel)방식과 AT&T방식이 있는데 차이점을 알아보자 1. Oprand 기입 순서Intel문법은 오퍼랜드가 Destination, Source 순이며AT&T문법은 순서가 반대이다 2. 레지스터 표현방법Intel문법은 레지스터 이름을 eax ..

Study/reversing 2017. 8. 21. 16:31

올리디버거(OllyDBG)에 대해 알아보자

디버거란? 다른 대상 프로그램을 테스트하고 디버그하는데 쓰이는 컴퓨터 프로그램이다. 디버그란? 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾아내는 테스트 과정 즉, 디버거는 버그를 찾아내는 테스트를 수행하는데 사용하는 프로그램이다. 디버거에는 다양한 종류가 있지만 올리디버거를 사용할 예정이다 올리디버거는 가볍고 빠르며 무료인 디버거임에도 다양한 기능과 옵션이 있다 올리디버거를 사용한 강좌가 많아 초보자가 사용하기 좋다보니 가장 인기있는 디버거로 평가된다. 올리디버거를 실행하면 다음과 같은 화면이 나온다. 굉장히 간지난다. 이제 나누어져있는 화면이 각자 무엇을 뜻하는지 알아보자 좌측 상단의 화면이다 Code Window라고 무르며 어셈블리코드가 나온다. 화면 좌측에 보이는 검은색으로 칠해져있는 숫..

Study/reversing 2017. 8. 20. 15:47

리버싱에 대해 알아보자

리버싱에 대해 알아보자 리버싱은 리버스엔지니어링의 줄임말로서 역설계 또는 역공학이라고 불린다. 이는 구조분석을 통해 장치 또는 시스템의 기술적인 원리를 알아내는 과정이다. 기술의 용도 긍정적인 방향으로 사용하게 되면 프로그램의 유지 보수를 위해 사용될 수 있고 부정적으로 사용하는 예는 크랙과 같은 인증우회가 있다 법 법에서 정의하고있는 리버싱은 다음과 같다. "'프로그램코드 역분석'은 독립적으로 창작된 컴퓨터 프로그램 저작물과 다른 컴퓨터프로그램과의호환에 필요한 정보를 얻기 위하여 컴퓨터프로그램저작물코드를 복제 또는 변환하는 것을 말한다" 법에서 제한하는 리버싱은 저작권법에서 규정하고 있으며 내용은 다음과 같다. "정당한 권한에 의하여 프로그램을 이용하는 자 또는 그의 허락을 받은 자는 호환에 필요한 정..

Study/reversing 2017. 8. 19. 12:27
  • 이전
  • 1
  • ···
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • ···
  • 49
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • writeup
  • Los
  • 어셈블리어
  • 네트워크
  • 파이썬
  • 웹
  • 리버싱
  • SQL
  • webhacking.kr
  • 시스템
  • HTML
  • injection
  • Python
  • 웹 해킹
  • web
MORE+

ARCHIVE

CALENDAR

«   2025/10   »
일 월 화 수 목 금 토
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

LINK

  • ♡
  • DESIGN 아띠 그래픽
  • 이종찬
  • 박상현
  • 이창현
  • 송인봉
  • 신동철
  • 박준형
  • 유현진
  • 박형찬
  • 박형찬
  • 이우진
  • 조학근
  • 박홍주

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT 고퍼, ALL RIGHT RESERVED.
고퍼
블로그 이미지 G0pher 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 방명록
CATEGORY
  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바