본문 바로가기

리버스-엔지니어링

SimpleBackdoor - IDA 정적 분석

반응형
사전 지식
Handle : 프로그램 내부에서 생성되며, 특정 자원(파일)에 접근하기 위한 포인터
Socket : 네트워크에서 통신을 연결하기 위한 규칙
socket : 소켓 생성
bind : 소켓을 특정 port에 할당
listen : 연결 대기
accept : 연결 성공
recv : 외부 데이터 수신
send : 외부로 데이터 전송


문제 : 악성코드의 통신 port를 찾아라

통신을 위해서는 socket - bind - listen - accept 단계를 거쳐야 한다.
socket에 port를 지정하는 절차는 bind에서 수행되므로 string 검색을 통해 bind를 찾아간다.


 

"bind error" 문자열의 바로 전 단계가 socket을 bind 하는 단계라고 추측된다.




위 사진을 보면 mov esi, 0x539h를 esi에 넣고 bind 함수를 호출한다.
이후 분기점에 의해 리스닝 소켓을 생성하고 연결을 맺는다.
따라서 통신 port는 1337이며 악성 코드를 실행했을 때 아래와 같이 해당 port로 리스닝된다.




 

반응형

'리버스-엔지니어링' 카테고리의 다른 글

Lab07_01 - 악성코드 동적 분석  (0) 2020.08.29
Lab05-01 - IDA 정적 분석  (0) 2020.08.28
[Reversing.kr] Music Player  (0) 2020.08.17
[Reversing.kr] Easy CrackMe  (0) 2020.08.17
[Reversing.kr] Easy Unpack  (0) 2020.08.17