Research 근황 -_-ㅋ

ㅎㅎ

초반에는 노가다성 작업만 시키더니..

이젠 직접 개발쪽에도 참여를 시켜주시는 교수님 :)

일단 개발환경에 쓰이는 언어인 Ocaml 을 모르니..
게다가 functional programming language는 해본적도 없으니..

분명 무지 간단한 첫번째 task를 쥐어준거 같은데도 몇일 밤낮이 걸렸네요..

일단 그저께 1차적으로 완성했었는데.. implementation이 비효율적이라면서..퇴짜 orz
그래서 이걸 어쩌나..망연자실 하다가.. 이것저것 삽질하다보니..
교수가 예전에 짜놓은 코드에서 버그 발견 -_-a
수정하고 implementation 다시하고..

운좋게 다시 하루만에 완성 ㅎ

==================================================
프로젝트: BAP (Binary Analysis Platform)
목적: binary 파일의 분석을 좀 더 자세하고 optimized되게 해서 malware 연구 등의 분야에서 사용.
        (binary –> disassemble –> IR (Intermediate Representation) –> ∞ )
예제: binary를 분석 한 후, CFG (Control Flow Graph) 생성하여 어떤 조건의 만족시에 특정 instruction이 실행되는지 분석. Automated Exploit generating.

일단 IL (Intermediate Language = IR)로 변환하는 기능은 구현되어있었고..
제가 맡은일은 옵션을 하나 더 추가하는것이었습니다.
기존 변환기능은 binary를 처음부터 끝까지 모두 translate하는거였는데 비해,
특정 offset range만 변환하도록 하는 기능이죠..

아이디어 자체는 간단하고 java나 c였으면 수 분 안에 구현했겠지만..ㅠㅠ
언어의 장벽때문에 쉽게 하진 못했습니다 ^^;

스크린샷:

1. objdump로 본 바이너리
    (instruction들만 나와있지만, 길어지면 사람으로서는 따라가기 힘들고, 정확히 어떤 작업이 일어나는지 알 수 없다.)
사용자 삽입 이미지
2. 기존 변환 기능
  (각각의 instruction에서 정확히 무슨일이 일어나는지 보여준다.)
사용자 삽입 이미지
3. 부분 변환 기능
   (0x5 부터 0x14 까지 instruction들만 분석)
사용자 삽입 이미지

4 Responses

  1. ugo says:

    ㅋㅋㅋ 요리는 바닥청소부터 시작이다 뭐 이런 훈훈한 감동을 주는 자료군요
    아 물론 리서치 내용이 이해가 된다는건 아닙니다 ㅋㅋㅋㅋ

  2. t1g3r says:

    와우!! 정말 유용한 툴같군요!!
    진짜 탐나네요!!
    완전 멋진일을 하고계시는군요!

    • Cai says:

      ^^;

      ㅎㅎ 전 그냥 이미 만들어져있는 플랫폼에 기능 개선만 하는격인데요 뭐 ㅎㅎ

      근데 이번에 맡은 task는 어케해야할지 막막 ㅠ_ㅠ

Leave a Reply

Your email address will not be published. Required fields are marked *