qingfro9님의 블로그 입니다.

[악성코드]악성코드에서 사용하는 CAll API by Hash 본문

정보보안/악성코드

[악성코드]악성코드에서 사용하는 CAll API by Hash

qingfro9 2018. 8. 2. 01:40
샘플을 분석하다 보면 다음과 같은 코드들을 확인할 수 있다.



해당 코드는 DLL에서 API 주소를 얻어오는 코드인데 0xD45A1E1F와 0xF8245751은 각각 RtlFreeHeap 와 GetProcessHeap API다. 근데.. 분석할 때 그냥 그렇구나 하고 넘어갔는데, Olly로 보다보니. 어떻게 잃어오는지 @_@ 햇갈리더군


근데 해당 함수의 첫 코드 블록을 보면 fs:loc_2F+1을 eax에 넣어주는 코드를 확인할 수 있는데, 이 부분은 TEB 구조체를 읽어온다는 생각을 하지 못했다.. 분석할 땐, 근데 다시 와서 보니, 0x2F+1은 0x30이고, FS레지스터에 + 0x30은 TEB! 그럼 그때부터 해당 코드는 TEB에서 확인할 수 있는 PEB 정보와 등등 정보를 이용해서 API를 획득하는 구나를 알 수 있었다.

근데 어셈코드를 보는데, 쓰레기 코드들도 많아서 사실 보는데 쉽진 않았다. 이참에 TEB랑 PEB 구조체들 다시 한번 정리하면 좋을거 같다.

보시고 공부하실분은 아래 링크 참고하면 도움이 됨 :-) 그리고 든 생각인데 악성코드 책뿐만 아니라 실제로 공격자들이 쉘코드를 어떻게 작성하는지 알아두면 분석할 때 참 도움이 많이 될거 같다.! 그러므로 어서 윈도우 버그헌팅 공부를..



ref)
Calculating API hashed with IDA Pro: http://www.hexblog.com/?p=193
Universal ShellCode 기초정리 : http://ex3llo.tistory.com/54
-> 참고로 윈도우버그헌팅가이드 책에 해당 부분에 대해서 좀 더 상세하게 나와있음.


Comments