반응형

 

분석을 하다보니 이런 경우가 있어 소개합니다.

아시는 분들도 있고, 탐지하고 계신 분들도 있지만 그래도 소수를 위하여^^???

공유합니다.

 

"crattack"라는 문자열을 탐지할 경우

그냥 "crattack"로 사용하면 탐지가 되겠죠. 그래서 방법 중에 하나가 암호화를 이용하는 것입니다.

간단하게 xor를 하던지 하여, xor한 문자열을 다시 로딩하기전에 xor 하여 로딩하는 방식이죠.

 

enc_str = "fproskrlrksjflfkrj";

loadlibrary(xor_dec(enc_str));

 

이런 형태?^^

 

그리고, 두번째는 조합을 이용한 방식 입니다.

 

sprintf(buff, "crat%s", "ttack");

loadlibary(buff);

 

이렇게 해도 우회가 되겠죠?^^

 

물론 사용하는 Loadlibary를 감시해서 처리해도 무방하지만

뭐..하나의 방법이니 참고하시면 좋겠네요.

 

즐거운 삽질 만땅하시길...^^

(참고로 위 사례는 실제 핵킹 툴에서 사용하는 사례입니다.)

반응형
반응형

 

LoadLibrary는 사용하는 Application이 직접 DLL, EXE를 메모리에 올려 핸들을 얻어오는 함수이고,

GetModuleHandle현재 메모리에 올라와 있는 DLL, EXE의 Handle을 얻어오는 함수 이다.

 

그럼 이런걸 어디에 사용하면 좋은가???

 

LoadLibrary의 경우는 그냥 내가 필요한 DLL을 직접 호출 할때 사용하는 것이 좋고

 

GetMoudleHandle의 경우는 현재 올라가져 있는 DLL, EXE의 핸들을 얻어오는 과정

즉, 디버거 또는 현재 타겟이 되는 메모리 주소 번지를 확인 할 때 사용하는 것이 좋다.

 

단, GetModuleHandle로 얻어온 handle은 FreeLibrary를 하면 안된다.

현재 사용하고 있는 다른 곳(프로그램)에서 문제가 발생할 수 있다.

따라서 사용이 끝나면  CloseHandle로 마무리하는 것이 좋다.

 

또한, LoadLibrary의 경우는 reference count가 올라가게 된다.

Reference count의 경우는 메모리의 효율적인 관리에서 사용되는 데 count 수가 증가 될 경우 handle leak, memory leak이 발생할 가능성이 있다. (찾아봤는데 그거 말고는...ㅡㅡ;;)

 

 

 

 

반응형

+ Recent posts