Skip to content

폴라리스 ~Polaris~

분 쟁 절 대 엄 금
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
어셈블리 기초 지식.txt4.9KB

일단 이건 다른 파인더 분이 올린 내용인데, 배경 지식으로 적절할것 같아서 올려 놓습니다.

배우실 분들은 한번 읽어 보면 도움이 됩니다.

어셈블리어


기계어는 일반적으로 0과 1이라고 하는 2진수에 의해 구성되어진다. 이것을 그나마 사람이 알아볼 수 있도록 기계어와 1대 1로 매칭하는 언어가 바로 어셈블리어다.

기계어와 어셈블리어는 재차 말하지만 1대 1로 정확히 매칭되며 이를 통해 사람으로서도 어느정도는 프로그램의 구동원리를 직접 확인 할 수 있다.

많은 코드파인더 지망생들은 이 어셈블리어를 직접 혹은 간접적으로나마 겪어보았을 것이다.

바로 올리디버거(Olly Debugger)에 의해 게임을 열거나 접근할 시 보게되는 프로그램 소스가 바로 어셈블리어이기 때문이다.


디버거 프로그램(Debugger)

기본적으로는 프로그램의 오류를 해명하고 그것을 해결하기 위한 목적으로 쓰이는 프로그램이다. 그것이 하는 일은 실행중인 프로세스를 기계어->어셈블리어로 번역해 표기하고 그를 통한 대상프로그램의 정밀한 분석 및 구조 개선이겠지만 우리들은 그 기능을 이용해 게임의 후킹 지점을 찾는 것(코드 파인드)이 주 용도로 쓰이게 된다.

디버거 프로그램의 종류로는 올리디버거, 이뮤니티 디버거, 윈디버거 등이 존재한다.

그 중에서 올리디버거에 대해 살펴보도록 하자.


범용레지스터

EAX, EBX, ECX, EDX의 네가지 레지스터로 구분되어진다. 이들 레지스터는 산술 연산 및 결과 값 저장 등 여러 가지 용도로 쓰이게 된다.


EAX

산술연산에 주로 사용되어지는 레지스터다. 대부분의 덧셈, 곱셈, 나눗셈 등의 산술연산에서 무조건 적으로 사용되어진다.

EAX는 32비트(4바이트)사이즈이며 그 전체를 사용 시에는 EAX로서 쓰인다.

16비트(2바이트)만을 사용 시에는 AX로서 쓰인다.

8비트(1바이트)만을 사용 시에는 AL 혹은 AH로서 쓰인다.

이런 식으로 구분되는 것을 기억하도록 하자.


EBX

EAX를 보조하는 산술연산에 사용되거나 여러 주소 연산에서 사용되어지는 레지스터이다.

EAX의 구조와 마찬가지로

 

32비트(4바이트)영역을 사용 시 EBX

16비트(2바이트)영역을 사용 시 BX

8비트(1바이트)영역을 사용 시 BL 혹은 BH로서 쓰인다.

 

ECX

ECX는 일반적으로 루프(Loop)의 반복횟수를 의미하는데 쓰이게 된다. 하지만 그것만이 용도는 아니고

많은 산술 연산 및 주소연산에도 공통으로 사용되게 된다.

32비트(4바이트)영역을 사용 시 ECX

16비트(2바이트)영역을 사용 시 CX

8비트(1바이트)영역을 사용 시 CL 혹은 CH로서 쓰인다.


EDX

EDX는 큰 수의 산술연산, 즉 32비트 레지스터간의 곱하기 등의 최대 레지스터 용량 범위를 넘어가는 .

연산을 보조하기 위해 사용되는 레지스터이다.

32비트(4바이트)영역을 사용 시 EDX

16비트(2바이트)영역을 사용 시 DX

8비트(1바이트)영역을 사용 시 DL 혹은 DH로서 쓰인다.

 

기본적으로 이상의 범용 레지스터들은 일단 그 사용 용도가 정해져있다고 하지만 실제로는 범용인지라

어떻게 어떤 형태로 사용 되도 이상하지 않다.

 

포인터(주소) 레지스터

포인터 레지스터에는 ESP,EBP, EIP 가 존재한다.


ESP

그 특성상 다음 강좌에서 설명하도록 하겠다.

단지 이것은 스택 메모리에 있어서 대단히 중요한 레지스터이다

 

EBP

그 특성상 다음 강좌에서 설명하도록 하겠다.

이 역시 스택 메모리에 관여하는 레지스터이다.

 

EIP

EIP는 다음에 수행되어야할 명령의 주소를 가리키고 있다. CPU는 이 EIP가 가리키는 주소에 의해서만 코드를 실행하게 되며 따라서 이것은 프로그래머가 임의로 변경할 수 없는 부분이기도 하다. 물론 디버거를 이용한 변경은 가능하지만 그 경우 어떤 문제가 일어날지 장담할 수 없게 된다.


인덱스 레지스터

인덱스 레지스터에는 EDI와 ESI가 존재한다.

이들 레지스터는 대부분이 문장 처리에 관여한다. 보통으로는 ESI가 소스주소를 EDI가 목적지 주소를 가리키는 데 

이들 레지스터는 ESI(문장위치주소) -> EDI(문장을 옮길 주소)의 방식으로 사용되는 것이 일반 적이다. 하지만 그 외에도 가끔 산술연산에 사용되어지기도 한다.

 

플래그 레지스터

플래그 레지스터는 다시 두개의 분류로 구분 할 수 있다. 상태 플래그와 제어 플래그가 바로 그 것인데 코드파인드시 주로 보게 될 상태 플래그를 보도록 하자.


CF(Carry Flag)

연산 명령 실행 후 그 결과 값의 최상위비트(가장 왼쪽의 비트)에 덧셈에 의한 자리올림 혹은 뺄셈에 의한 빌림이 발생시 1로 세팅되어진다.

PF(Parity Flag)

연산 결과 값의 1비트들의 개수를 나타낸다. 그 개수가 짝수인 경우 1로 세팅되고 홀수인 경우 0으로 세팅된다.

AF(Auxiliary carry Flag)

특수화된 산술에서 세팅되어지며 주로 10진 연산처리 시 발생한다.

ZF(Zero Flag)

연산의 결과 값이 0일시 1로 세팅되어지고 0이 아닐시엔 0으로 세팅되어진다.

OF(Over Flag)

연산의 결과가 부호 발생 시 세팅되어진다.

  • profile
    리드맨 2013.03.23 00:42
    기초부터 촥촥촥~
  • profile
    一片丹心마시로♡ 2013.03.23 01:08
    멍~
  • profile
    석군 2013.03.23 02:53
    멍......늙었나 예전에는 저것들이 다 이해됬는데 이제는 한참을 봐야되는군요.
  • profile
    KoNaTa 2013.03.23 08:10
    오...멋진내용입니다 이거이거... 도움이 확실히 되겟군요 +ㅅ +
  • ?
    CLouse 2013.03.23 17:32
    헐....;;;
  • profile
    자본주의자 2013.03.23 18:38

    그냥 CPU를 설명하는 것이라고 이해한 뒤에 읽으시면 됩니다.
    레지스터는 CPU가 셈하는데에 사용하는 손이라고 생각하면 되겠군요.ㅇ.ㅇ


    CPU가 계산하는 과정을 그대로 볼 수 있는거죠.ㅇㅇㅋ

    (여러분, 신기, 신기하지 않나욧.ㅇ.ㅇ!!..... 나만 신기 했었던 것은 아니라고 말해주세요.ㅇ.ㅇ)


잡담게시판

공지사항을 숙지해주세요.

List of Articles
번호 제목 글쓴이 날짜
공지 아청법에 저촉되는 이미지,글을 올리지 말아주세요. 5 애로앙 2013.08.19
공지 폴라리스 통합 공지사항. -필독- 10 애로앙 2013.03.03
964 힘쌔고좋은아침! 부활해서 기쁩니다. ... ... 참멋진짤이죠? 부활을 축하하며. 여러분 앞으로도 잘부탁드립니다. 102 file DarkLuna 2013.03.04
963 히힣 곧있으면 쿠닌이다 히힣 히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣히힣... 18 file 一片丹心마시로♡ 2013.07.01
962 히.... 히익!!!! 란스9 언팩 970장... 히... 익!!! 오늘부터 작업할꺼에요. 400장 정도 미리 해놨으니까 570장 정도 남았음. 11 file 홍미령 2014.04.25
961 흠흠흠흠흠..... 나의 브라우저 게임이... 종료라닛 ! 제가하던 브라우저 게임이 서비스 종료한답니다...=ㅅ=... 할만한거 찾았나했더니.... . . 끝물에 이벤트에 참가해서 순위권에 오른거였어...OTL . . . 이대로 끝낼 순 없다!! 그림 테러!! 요 그림에 낚여서 시작했는... 9 file Harukana00 2014.02.16
960 흠흠. 이사가기 전에 하나 잡아보고 갑니다. ㅇ-ㅇ......... 요번에 잡아본건 아이 마이 미스트 라는 걸 잡아봤습니다. I MY MIST 올해 나온 (2월이지만...) 따끈따근한(발매한지 10개월 지났지만...) 미연시로 TS 물입니다 ㅇ-ㅇ.............. 딱히... TS 물 ... 9 file 베르세인 2013.12.22
959 흠흠 드이어 내일이군요 ㅇㅅㅇ.....후아아앙... 14 KoNaTa 2013.10.24
958 흠흠 니세코이가 결국에 14년 1월 11일 21시30분 방영하는군용 흠흠 어떻게 뽑힐지 조금은 기대가 되는군용 TOKYO MX, 토치키 TV, 군마TV 3군대서 14년 1월 11일 23시 30분 부터 방영이군요 ㅇㅅㅇㅋ 흠흠 잘뽑혔으면 하는 바램이 크긴한뎅 후훗 출처 : www.nisekoi.jp 8 file KoNaTa 2013.12.02
957 흠흠 나는 아직도 밀아를 접지 않았다. 라고는 해도 그냥 매 시즌 1장만 먹고 일러 모으며 살기만 한다지요. 알람?버려요 ㅇㅅ.. 하루에 한 6시간에 1번 들어가면 되나? (딱히 달리는 것도 없어서 그냥 홍차는 계속 쌓이지요.) 친구들은 그저 스탯을 올려줄... 12 file Line 2013.08.24
956 흠......... 뉴스 게시판 보시는분 있긴 있음? ㅋㅋㅋ 30 KoNaTa 2013.12.16
955 흠... 말씀드렸던 게임 완성했습니다 생각보다 여러가지로 시간이 오래걸렸네요 한번에 다 만들어내는것은 무리라; 이번편은 플레이 시간 약 30분 정도의 프롤로그입니다 제목은 흡혈귀의 연애방법으로 플레이 마켓에 미연시라고 치시면 찾으실수 있을것... 27 file 계단 2013.06.25
954 흠.. 오늘도 이렇게 .. 가게 오픈 하러 갑니다 =ㅅ =핰핰 23 KoNaTa 2014.01.16
953 흔한 전산마비 환자의 글. 저만 난독증인거 아니죠? 처음에는 전신마비라고 읽었음..Orz... 4 file 석군 2013.03.07
952 흔한 일본의 컬쳐 쇼크 우와아 뭐야 이거 무서워 컬쳐쇼크 대에바아악.. 이 추운 날씨에 이런 걸 다 감사합니다. 는 하치는 그럭저럭 좋은데 잇쿠는 음 별로... 이글루스를 새로 시작했습니다만. 투데이가 어제는 150이고 오늘은 450을 찍... 11 file Line 2013.12.31
951 흔한 올드비의 소소한 인사 22 TaKaRai 2013.05.19
950 흔한 애정만 앞선 작업.jpg ↑ 1차 ↑ 2차 그러니까......... 이걸 GIF로 만들어서...... ..... 그런데 아직 뭔가 부족한거 같다,,,,, ㅠㅠ 애정만 앞서서 슬픈 1인.. ㅜㅜ 오늘도 애정과 사랑밖에 주지 못하는 남자는 웁니다. ㅜㅜ 15 file 一片丹心마시로♡ 2013.03.18
949 흔한 1000점대의 베인 4 굴러가는시간 2013.04.18
948 흐흑 너무 슬프군요 7 옭옭 2013.04.17
947 흐음... 오래만에 끄적끄적....- _-ㅋ 랩6이 되긴 싫으니... 21 KoNaTa 2013.10.07
946 흐므흐므~ 여행갔다왔더니 더위가 조금 줄었군요 하하핰 좋은 현상이군요 ㅋㅋㅋㅋ 더위가 조금 줄어들어서 다행이네요 그런데 말이죠 - 0-... 흠........ 여행을 갔다와서 다시 똑같은 생활을 시작 해야하는 슬픈현실은 변화가 없네요..........ㅠㅠㅠ 아읔.... 지겹다... ... 16 file KoNaTa 2013.08.27
945 훗훗훗.. 이미 질렀다!...(강좌) 20 굴러가는시간 2013.03.20
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 ... 49 Next
/ 49

Recent Articles

Recent Comment

Logged Members

modified by 애로앙 / in 2013.03