[2008 CodeEngn Conference 02] graylynx - 정적 링크된 Stripped ELF 바이너리 상에서의 함수 탐지 기법

1,256 views

Published on

2008 CodeEngn Conference 02

Strip된 정적 링크된 ELF 바이너리에서 원래의 함수정보를 얻어내는 방법과 IDA SDK를 이용한 플러그인 제작을 설명한다. grayResolve 플러그인의 실행순서로는 1. 함수 이름을 복구하고자 하는 ELF 파일을 IDA로 로드한 뒤, Edit > Plugin 메뉴 또는 단축키 Alt + 1 을 통해 grayResolve 실행 2. 대상 파일이 컴파일될때 링크된 라이브러리 파일을 (예: libc.a) 지정해준다. 3. 찾고자 하는 함수 이름이 발견되지 않으면, 다른 라이브러리 파일을 대상으로 시도해보고 로그 파일을 분석한다.

http://codeengn.com/conference/02

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,256
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[2008 CodeEngn Conference 02] graylynx - 정적 링크된 Stripped ELF 바이너리 상에서의 함수 탐지 기법

  1. 1. 정적 링크된 ELF 파일에서의외부 심볼 정보 복구 기법2nd CodeEngn Seminar태 인 규 (graylynx@hackken.org)www.CodeEngn.com
  2. 2. ELFxecutableinkableormat
  3. 3. 실행 가능한링크 가능한형식형식
  4. 4. 공유라이브러리와실행파일을위한 기본 형식
  5. 5. ELF 구조
  6. 6. 정적 링킹VS동적 링킹VS
  7. 7. 섹시 심볼
  8. 8. ELF의심볼테이블= 디버깅 정보테이블
  9. 9. QUIZ
  10. 10. WHY?
  11. 11. Stripped!
  12. 12. 재개발이 가능할까?재개발이 가능할까?
  13. 13. 실험
  14. 14. 실행 파일에 복사된공유 라이브러리 코드와원본 공유 라이브러리 코드의비교/* example.c */#include <stdio.h>int main(){printf("Hello, ELF!₩n");return 0;}
  15. 15. $> gcc example c -o example -static비교대상 1: 정적 링크, 심볼 테이블이 삭제된ELF 실행 파일$> gcc example.c o example static$> cp example example_stripped$> strip -S exmaple_stripped
  16. 16. $> cp /usr/lib/libc a /tmp비교대상 2: 정적 공유라이브러리 내목적 파일$> cp /usr/lib/libc.a /tmp$> ar /tmp/libc.a
  17. 17. 비교대상 1 : 실행 파일에 복사된 공유 라이브러리 코드비교대상 2 : 원본 공유 라이브러리 코드
  18. 18. 실행 파일에 복사된 printf() 함수 기계어 코드
  19. 19. 재배치
  20. 20. 재배치
  21. 21. $> readelf -r printf.o재배치 테이블 조회WHAT THE ??!!
  22. 22. 비교대상 1비교대상 2
  23. 23. Signature
  24. 24. 꿈은 ★ 이루어진다꿈은 ★ 이루어진다
  25. 25. grayResolveIDA Pro Plug-InC / C++ / STLArchive ParserELF AnalyzerSignature SearchingName Resolving
  26. 26. Demo
  27. 27. Q & AQ
  28. 28. QUIZ본 발표에서 사용된 삽화 중사인하는 장면의 주인공은사인하는 장면의 주인공은누구인가?
  29. 29. 2nd CodeEngn Seminarhttp://blog.hackken.org/grayToolsgraylynx@hackken.orgwww.CodeEngn.com

×