inflearn logo
강의

講義

知識共有

Windowsマルウェア分析の入門プロセス

1.5 リバーシングの基礎 - C文法とアセンブリ

어셈블리 코드가 이해 안가서 질문드립니다.

394

km6k27zzzt4864

投稿した質問数 3

0

1.5 리버싱 기초 - C 문법과 어셈블리어에서

8:30부분의 else 설명에

mov eax, [ebp-4]

add ecx, 1

mov [ebp-4], ecx

라 되어있는데 add eax, 1 / mov [ebp-4], eax가 아니라 add ecx, 1 / mov [ebp-4], ecx인 이유가 궁금합니다.

 

add 전에 mov ecx, eax가 있는 것도 아니고 변수d의 경우 계속 [ebp-4]로 사용되어서 ecx에 d값이 있는지 확인이 안되는데, 코드가 값을 eax에 옮기고 ecx를 1 증가시킨 뒤 [ebp-4]에 ecx값을 넣어 반환을 하는게 잘 이해가 안됩니다.

악성코드

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

해당 코드를 보면, ebp-4에 저장된 변수 d의 값을 사용하고 있습니다. mov eax, [ebp-4]은 ebp-4에 저장된 d 값을 eax 레지스터에 옮기는 작업입니다. 그리고 add ecx, 1은 ecx 레지스터에 있는 값을 1 증가시키는 작업입니다. 이후 mov [ebp-4], ecx는 ecx 레지스터에 있는 값을 ebp-4에 저장된 d에 대입하는 작업입니다.

따라서, add eax, 1/mov [ebp-4], eax 대신에 add ecx, 1/mov [ebp-4], ecx를 사용한 이유는, 변수 d의 값을 eax 대신 ecx 레지스터를 통해 조작하고 있기 때문입니다.

만약 변수 d의 값을 계속해서 사용하는 부분이 있었다면, mov ecx, eax로 값을 옮기는 작업이 필요했을 겁니다. 하지만 해당 코드에서는 변수 d의 값을 사용할 필요가 없으므로 그렇게 구현되어 있지 않았을 가능성이 큽니다.

오류가 있을 수도 있는 코드이므로, 강의 진행자에게 문의하거나 더 자세한 내용은 관련 매뉴얼 등의 참고자료를 확인하는 것이 좋겠습니다.

감사합니다.

인터넷 연결은 되는데 구글 검색은 안돼요.

0

28

1

포렌식 강의에서 vol / blackenergy 파일이 강의자료안에 없습니다

0

49

1

virtual box 인터넷 연결 오류 문제

0

115

1

샘플 파일 위치

0

70

2

FLARE VM을 관련 질문

0

82

1

윈도우10 환경에서 ms developer image 다운

0

144

2

샌드박스 다운로드 url 없음

0

67

1

2025년 로컬 컴퓨터(윈도우11)에서 가상환경으로 드래그앤드롭 안됨

0

227

2

강의자료 관련 질문

0

67

1

pestudio 버전이 64비트 운영체제에서만 실행되요

0

195

1

윈도우7 vmware player 환경 다운로드 경로가 막힌것 같습니다

0

230

1

VMware 17 Player 인터넷 속도

0

769

1

WSCC 유틸리티 인스톨 악성코드 검출

0

262

1

기초 동적 분석 실습간 악성코드 예제 실행 관련 질문

0

391

1

EK07 암호

0

275

2

DMA 와 악성코드 혹은 바이러스

0

310

1

레나 튜토리얼 html사이트

0

355

1

ms developer image 다운 링크 오류

1

518

2

버츄얼 박스 네트워크 설정

0

429

2

xplico의 site내용이 달라요

0

436

1

이미지 검색 안내와 다르게 나타남

0

505

1

컴파일에러

1

878

2

버츄얼 박스 네트워크 설정

0

661

2