본문 바로가기

개발 및 운영126

WindowsPE에서 디버깅하기 WindowsPE에서 cmd을 켜고 크래시 덤프를 만들기 위해 procdump을 사용하면 작동하지 않고 그냥 꺼져버립니다..그 이유는 explorer에서 procdump을 실행해보면 이유를 알 수 있습니다. explorer실행방법 : cmd에서 notepad열기 -> 파일열기 -> 모든파일 -> exe우클릭 실행! 그럼 pdh.dll이 없다고 나오는데 C:\Windows\System32\pdh.dll을 procdump와 같은 위치에 넣어주면 작동합니다! 2018. 11. 7.
[Spring-boot] OAuth2 인증 과정 정리 1. @EnableResourceServer 어노테이션을 설정하면 ResourceServerConfiguration.class 을 Import하게 됩니다. * 어디선가 authenticationManager가 OAuth2AuthenticationManager 클래스로 설정됩니다. 2. tokenService와 tokenStore을 가져옵니다. 3. 인증시OAuth2AuthenticationProcessingFilter -> doFilter -> tokenExtractor = new BearerTokenExtractor(); Authentication authentication = tokenExtractor.extract(request); // new PreAuthenticatedAuthentication.. 2018. 10. 22.
libcef 멈춰버리는 문제 해결 libcef을 사용하던 중...화면을 드래그하거나 특정 작업을 하거나 아니면 그냥... 멈춰버려서 뻗어버리는 경우가 있었습니다.메인스레드는 CPU을 11%정도를 계속 소비하면서... 이런 상황에 제 프로그램은 이런 구조였습니다. main()while(GetMessage(NULL, &msg, NULL, NULL)){TranslateMessage(&msg);DispatchMessage(&msg);} CEF초기화 부분cefSettings.multi_threaded_message_loop = 1; //needed for MFC projects (unless we want to implement custom message-loop)cefSettings.single_process = 1;CefInitialize(c.. 2018. 7. 2.
CodeVirtualizer 주의점 #1 CodeVirtualizer을 한국에서 사용하는 사람들이 별로 없는거 같네요.. 제가 사용해 보면서 겪고있는 일들을 기록합니다.. 1. 중첩 Virtualizer 금지VIRTUALIZER_START....VIRTUALIZER_FISH_WHITE_START....VIRTUALIZER_FISH_WHITE_END....VIRTUALIZER_END 이런 식도 그렇고 void function(){VIRTUALIZER_START...VIRTUALIZER_END} int main(){VIRTUALIZER_START...function();...VIRTUALIZER_END} 이런것도 그렇고 중첩해서 VIRTUALIZER을 하면 CodeVirtualizer프로그램이 Protect적용중에 죽던지 프로그램이 죽던지 합니다... 2017. 12. 26.
효율적인 그리고 안전한 소켓 통신 서버 Thread pool을 이용해서 소켓 서버를 만들 때 recv하는 방법은 대체로 쉽다.Windows에서는 IOCP로, Linux에서는 epoll을 이용하면 된다.이런걸 이용한 예제는 참 많지만... 실제 서버에 적용하면 문제가 생길 가능성이 있다.TCP send의 경우 클라이언트가 데이터를 받는걸 확인해야만 return한다.(물론 전송 실패 시에는 한참 뒤에 return한다.)만약 한정된 Thread pool에서 클라이언트에게 데이터를 전송하는데 마침 전송중인 모든 클라이언트의 연결이 강제로 끊긴 다면?서버는 오랜 시간 Waiting하다가 겨우겨우 다음 데이터를 처리할 것이다.이런일이 발생할까? 고려해야 할까? 할 수도 있지만 충분히 가능한 시나리오고이걸 악용한다면 매우 쉽게 DoS공격을 할 수도 있다... 2017. 11. 13.
KiUserApcDispatcher Hooking ntdll.dll의 KiUserApcDispatcher API을 후킹하려고 시도했는데 일반적인 후킹방법으로는 프로그램이 잘못된 메모리를 참조해서 오류가 나게 되었습니다. 인터넷을 찾아보면 이런 소스도 찾아볼 수 있는데... https://github.com/blaquee/APCHook/blob/master/AntiDebugAPC/Source.cpp 일단 __forceinline(함수의 prologue을 없애기 위해) 때문에 Debug모드에서는 당연히 작동하지 않고 Release모드에서도 APC Queue을 실행시키는 SleepEx함수를 실행하면 오류가 뜹니다. 후킹된 KiUserApcDispacher에서 다른 작업을 하고 원래 KiUserApcDispatcher을 실행하면 원래함수를 call 할 때 rs.. 2017. 10. 21.
반응형