Security ★ Development/Reversing(44)
-
api 리버싱 2 - RtlNumberGenericTableElements, RtlIsGenericTableEmpty
이번에는 RtlNumberGenericTableElements라는 함수를 보겠습니다.앞의 것은 이전과 같으니 건너뛰고MOV EAX, DWORD PTR DS : [EAX+14]이것만 보겠습니다.EAX는 구조체에서 14 의 오프셋을 가진 위치입니다.이 위치를 eax에 넣고 eax는 리턴됩니다. retn이 4인걸로 봐서 리턴 값은 하나이고 함수의 이름을 보면 테이블 요소의 개수를 뜻하므로 이 수를 리턴하는 것으로 추측할 수 있습니다. 그런데 이 수는 eax에 저장되어 있고 이는 eax+14의 값이었으므로 앞의 구조체는 다음과 같이 수정 될 수 있습니다.struct TABLE{ UNKNOWN Member1;UNKNOWN_PTR Member2; UNKNOWN_PTR Member3;UNKNOWN_PTR Member..
2015.01.27 -
api 리버싱 1 - RtInitializeGenericTable
리버싱의 일부분으로 특정 api에 대해 정보를 찾는 방법을 알아보겠습니다.여기서는 ntdll.dll에 있는 윈도우 네이티브 api인 generic table api를 대상으로 합니다.그럼 generic table api에 포함되는 적절한 함수를 찾아야합니다. 이 때 필요한 것이 generic table api가 구현되어 있는 ntdll.dll과 dumpbin입니다. dumpbin을 위와 같이 사용하면 ntdll.dll의 함수목록이 나열되어있는 txt파일을 생성할 수 있습니다. 여기서 generic table api 중 하나인 RtlNumberGenericTableElements 함수를 볼 수 있습니다. api를 조사하는데 가장 좋은 출발점은 사용된 구조체를 살펴보는 것입니다. geneic table ap..
2015.01.26