Reverse Engineering DAY_008 어셈블리 코드 분석, Whilte IF 어셈블리 분석, assembly code 분석, 레지스터, Register, 어셈블리어 명령어, Reversing Engineering , 리버싱 엔지니어링 기초

2024. 2. 26. 20:37Information Security 정보보안/Reverse Engineering 리버스 엔지니어링

728x90

배울내용: 

어셈블리 코드 분석

Whilte , IF 어셈블리 분석 

assembly code 분석

레지스터

Register 

어셈블리어 명령어 

Reversing Engineering 

리버싱 엔지니어링 기초

 

 

 

 

이전시간 : 실제 코드 어셈블리로 분석하기

https://sarimus.tistory.com/89

 

Reverse Engineering DAY_007 어셈블리 코드 분석, assembly code 분석, 레지스터, 레지스터 사칙연산, Registe

배울내용: 어셈블리 코드 분석 assembly code 분석 레지스터 레지스터 사칙연산 Register EAX, EDX, ECX, ESI 어셈블리어 명령어 Reversing Engineering 리버싱 엔지니어링 기초 이전시간 : Assembly 명령어 (레지스

sarimus.tistory.com

 

 

 

 

 

 

이번시간 : 

실제코드 While 문 , IF 문 어셈블리로 분석하기 

 

 

 

While 문

코드 어셈블리로 보기

 

 

 

위와같이 i 가 10 이 될때까지 1씩 더해주는데 1씩 증가한 값을 sum 이라는 변수에 더해준다

그러면 나오는 값은 55 가된다. 이걸 어셈블리로 한번보면 아래와 같다

 

 

 

 

 

그리고 <+22> 에 JMP 가 있는데 

JMP는 그냥 뛰어넘는 것이고 JLE 는 조건에 맞으면 뛰어넘는것이다 

 

그래서 <+22> 에 왔을때 <+34>로 뛰어넘고 JLE 를 조건을 본뒤에 부합하면 다시 

<+24> 로 넘어간다 만약 조건에 충족하면 <+38> 을 뛰어넘는 <+40>으로 넘어가게된다.

 

 

 

 

아래는 실행됬을때 보이는 것을 테이블로 구현해봤다  

 

0x113d는 메모리 할당을 해주는 것이다 그 할당된값안에 값이 들어간다 

 

그러면 이제 0x114f 와 0x115f 사이에서 조건에 맞을때까지 계속 실행되고 

그뒤에 넘어간뒤에 0x1161 로 넘어가게 된다 

 

 

 

 

 

 

 

IF 문 

어셈블리로 보기 

 

 

 

이렇게 코드를 짜고 컴파일 시킨뒤에 gdc 로 열어서 intel 문법으로 

열어보면 아래와 같다

 

 

 

 

 

 

 

<+8> 에 1E 가 이 있는데 이는 10진수로는 30 이되고 

<+15> 에 30을 0xa 인(10)을 비교하는데 틀리다 

 

그아래보면 JNE ( Jump if Not Equal) 가 있는데 같지않기떄문에 

<+38> 로 간다 그리고 여기서도 30 과 0x14 (20) 을 비교하고 아니면

 

<+61>로 간다 그리고 여기에서 내려간뒤에 <+71>에서 어떤값을 출력하는것을알고있다 그값이 else 에 있는 100인걸 우리는 안다 

 

 

 

 

 

 

 

 

그러면 이걸토대로 아래의 문제를 한번 분석해보자

 

 

이것을 보고 어떠한 코드 인지 한번 분석해보자 

정답및 해설은 아래에 있다 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

파란색 부분이 + 된 부분이 출력되는부분이고

초록색이 % 된 부분이 출력되는 부분이고 

갈색 부분이 위에 계산된값을 더해준 총합을 출력되는 부분이다 

 

 

 

 

 

 

실행된 코드는 아래와 같다 

 

 

 

 

이런코드가 실행이 됐던걸 알수있다 

 

 

 

 

 

 

 

 

이제는 어느정도 어셈블리를 보는법을 익혔다

 

다음시간에는 OllyDBG로 실제로 한번 분석을 해볼것이다 

 

 

 

 

 

 

 

 

728x90