가끔 보면 이것저것 분석할 일이 생기는데 불편함을 느낄때가....

 API Monitor 같은 도구는 말 그대로 API만 모니터링 해준다.

IDA로 분석 후 올리로 확인하면 되지만 너무 귀찮고 매번 쫏아가서 확인하기도 귀찮고...해서 열심히 찾아봤지만

API가 아닌 사용자 정의 함수(USER Function)에 대한 모니터링 도구가 없었다.

그래서 하나 만들어 써야겠다는 생각에 만들었는데 제법(?) 쓸만하다.. ㅋㅋㅋ


만든 도구인데...

간단히 설명하면... 

1. 분석하고자 하는 대상 프로세스를 선택 후

2. 내부에서 사용하는 DLL 리스트를 확인. 이 후 분석하고자 하는 DLL를 선택하면, 내부 im/export 함수 목록과 기본 정보가 출력하며, 등록되지 않은 다른 함수들도 출력(내부에서 사용자가 구현한, 또는 im/export 되지 않은  함수들)

3. 원하는 대상을 클릭 시 해당 함수 내부에서 호출 또는 점프하는 주소를 출력

4. 주소값 확인 후 모니터링 대상에 추가 후 모니터링 ( 모니터링 주소값은 임의로 추가 가능)


아직 버그가 몇개 남아있어서 수정중이긴 하지만 지금도 나름 쓸만해보인다...극히 개인적인 생각.. ㅋㅋ

API와 같은 함수들은 파라미터들을 확인하고 원하는 값을 뽑는게 가능하지만, 사용자 정의 함수는 파라미터이 몇개인지 알 도리가 없으므로(물론 IDA와 같은 좋은 도구들은 어떻게 찾는지 모르지만, 뽑아줌...하지만 난 모름..ㅋ) 파라미터 3개까지만 각 자료형별로 출력하도록 했다. 

어차피 이건 Memget Project에 포함되있는 기능이고, 해당 파라미터가 만약 포인터 또는 구조체일 경우 주소를 덤프떠보면 뭐가 나오지 않을까? ...


차후 필요한 기능들을 좀더 붙여봐야겠다.

Posted by Nvdark
,
논문 준비하면서 GDI취약점 분석했을때 한 분석 자료.

뭐 여기저기서 보면서 분석하긴 했지만 ...

나도 자료 없어서 상당히 찾고 삽질도 많이 했지만 혹시나 또 찾으시는분이 계실까봐;

도움이 되길 바라며...

분석은 vm상의 가상 머신과 로컬머신 두대로 하였으며 윈도우 커널 디버깅을 위해 windbg를 사용했음.

Posted by Nvdark
,