보안/어셈블리어

악성코드2

Eprld 2024. 8. 30. 17:09

f2 bp  브레이크 포인트 설정

f7 코드 한 줄 실행(call의 경우에는 함수 진입)

f8  코드 한 줄 실행(call그냥 지나침)

f9  프로그램 실행

ctrl + g 주소 이동 

-, + 이전, 다음 주소로 이동

enter 분기문에서 target 주소로 이동

space 어셈블리 코드 수정   

 

 

문자열 참조 - 이 위치가 참조하는 문자열 위치를 찾아냄

 

0040100B: 55 - push ebp > EBP 레지스터의 값을 스택에 push (함수의 시작에서 호출자의 bp 보존하는데 사용)

0040100C: 8BEC - mov ebp, esp > ESP 값을 EBP 레지스터로 이동( 새로운 스택 프레임의 베이스 포인터를 설정)

0040100E: 53 - push ebx > ebx 레지스터의 값을 스택에 push(함수가 ebx를 수정하기 전 원래의 값을 보존하기 위해 사용)

0040100F: 56 - push esi > ebi 레지스터의 값을 스택에 푸시 (주로 데이터를 처리할 때 인덱스 레지스터로 사용)

00401016: E8 79010000 - call 00401194 >주소의 함수를 호출 

nop 없는 문자열   

nop에서 space로 편집하기   

 

ctrl e -> hax데이터 편집 (여러개도 가능)

 

ctrl + G 어셈블리 이동 (주소값, 레지스터 이름 들어감)

시작값으로 돌아갈때

 

시작점에서 enter 후 ; + enter 주석을 추가함       

 

여기에 eip 설정 

-강제로 eip 옮겨서 진행  > 강제로 알고리즘 확인 권장 하지는 않음   

 

 

실습

-아쉽네요 메세지를 훌륭하게 변조했군요 로 출력하게 

sleep 함수    

push 를 0으로 변경 /  sleep 을 nop 처리를 함 /  

'보안 > 어셈블리어' 카테고리의 다른 글

어셈블리어 함수  (0) 2024.09.04
IDA 사용법  (0) 2024.09.02
dbg  (0) 2024.09.02
어셈블리 실습  (0) 2024.09.02
악성코드 분석 - 명령어  (0) 2024.08.29