windows system
-
api monitoring, API hooking toolwindows system 2016. 6. 14. 22:28
WinAPIOverride http://jacquelin.potier.free.fr/winapioverride32/ source까지 공개한 툴이다. 나는 heap , process등 중요한 시스템관련 API를 후킹했는데, 그러면 실행에 문제가 생긴다. api list를 txt, xlxs로 출력해주는 좋은 툴. SpyStudio-v2뭔지는 모르겠지만, diff와 관련된 기능이 있다. ui는 괜찮아보이기는하다 조금만 쓰다보면 상당히 불편하다. API-monitor 가장 reliable 한 툴. diStormXhttps://github.com/gdabah/distormxVisual studio 2015에서 컴파일하면 된다. 손쉬운 코드로 쉽게 후킹할 수 있다. pydbghttp://pedramamini.com..
-
Windows APIwindows system 2015. 5. 8. 17:11
걍다 wiki자료들.ㅋ windows Library https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_%ED%8C%8C%EC%9D%BC KERNEL32.DLL 메모리 관리, 입출력 명령, 프로세스와 스레드 생성, 그리고 동기화 함수들 같은 대부분의 Win32 베이스(base) API들을 응용 프로그램에 내보낸다. 대부분의 것들이 (NTDLL.DLL에 의해 내보내진) 상응하는 네이티브 API를 호출함으로써 KERNEL32.DLL의 내부에 구현되어 있다.[7] GDI32.DLL그래픽 장치 인터페이스(GDI) 함수들을 노출시키는데, 이것들은 디스플레이나 프린터에 출력되는 원시..
-
SSDTwindows system 2014. 11. 8. 21:30
SSDT 는 System Service Dispatch Table 의 약자이다. 이 테이블은 시스템에서 이용 가능한 모든 시스템 서비스들의 주소를 가지고 있다. Windows API 호출 시, User mode그림 출처 : 초보자를 위한 Kernel based windows rootkit -1부- By Beist Security Study Group(http://beist.org)int 0x2E 를 통해 IDT를 거쳐서 system call table로 들어가고,SYSENTER명령어를 사용하면 SSDT table로 바로접근한다. Windows API 호출 시, kernel mode KiSystemService()함수는 SSDT주소(KiServiceTable)+[EAXindex*4]연산을 통해 native..
-
윈도우에서 파이썬 개발 환경 세팅 (Anaconda, ipython, Visual Studio python)windows system 2014. 9. 21. 11:57
Anaconda https://medium.com/@younggun/anaconda-fe67e9c9709d 윈도우에서 anaconda설치하는 방법에대해 자세히 알려준다. 파이썬라이브러리를 활용한 데이터분석이였나? 겁나 유용한 빨간책인데 앞부분 설치방버비 바뀌어서 위의 웹페이지에서 다른 설치방법을 알려준다. 리눅스는 anaconda홈페이지에서 설치를 위한 shell script를 제공한다. easy_install, pip 다운받기 둘다 python package 다운로드, 빌드 해주는 묘듈이다. https://pypi.python.org/pypi/setuptools여기에서 setuptool다운 받고, cmd에서 ez_steup.py을 실행시키면 된다. C:\Python27에 scripts폴더가 있음. 여기..
-
TLS, TEB, PEB, SEHwindows system 2014. 1. 8. 19:06
TLS(Thread Local Storage) TEB(Thread Environment Block) thread확인하려 매번 커널에 들어가지 않기 위해 구조체로 따로뺐다.윈도우의 경우 TEB는 fs[0]에 위치하고 리눅스는 gs 레지스터에 위치한다. PEB(Process Environment Block) PEB는 TEB에서 0x30 떨어진 fs[0x30]에 위치한다. SEH (Structed Exception Handler) 간단히 말하면 SEH 는 윈도우 운영체제가 지원하는 예외 처리의 한 종류이다. 잘못된 메모리를 참조하거나 0으로 나누는 등의 예외 상황이 발생했을 시 우선적으로 미리 등록된 예외 핸들러를 호출해서 이 예외를 처리할 수 있도록 해 주는 것이다. 이러한 예외 처리는 EXCEPTION_R..
-
IAT(Import Address Table) , EAT(Export Address Table)windows system 2013. 12. 28. 22:29
IAT(Import Address Table) exe는 process생성 주체가 되므로 자신의 ImageBase에 정확히 loading되지만, dll은 자신의 ImageBase에 정확히 loading되지 못하며, 빈 공간으로 relocation된다. IMAGE_IMPORT_DESCRIPTOR구조체로 이루어져 있다. 여러 개의 라이브러리를 import하기 때문에 라이브러리의 개수만큼 위 구조체의 배열 형식이 존재하며, 마지막엔 null구조체를 넣어주어야한다. IMPORT Name Table(INT) 구조체에선 OriginalFirstThunk, PEView에선 IMPORT Name Table(INT)이란 이름으로 되어있다. IAT는 IMAGE_IMPORT_BY_NAME 구조체의 배열로 이루어져 있다. 첫 ..
-
DLL injectionwindows system 2013. 12. 24. 11:33
DLL injection 실행중인 다른 프로세스에 특정 DLL파일을 강제로 삽입하는 것 삽입된 DLL은 해당 프로세스의 메모리에 대한 정당한 접근권한을 갖는다. DLL injection 구현방법 -CreateRemoteThread() API -AppInit_DLLs 값 -SetWindowsHookEx() API -수작업 패치 -CreateRemoteThread() API http://msdn.microsoft.com/en-us/library/windows/desktop/ms682437(v=vs.85).aspx CreateRemoteThread(hProcess, //hProcess NULL, //lpThreadAttributes 0, //dwStackSize pThreadProc //lpStartAddre..
-
CreateProcess APIwindows system 2013. 12. 23. 10:58
CreateProcess API : http://msdn.microsoft.com/en-us/library/ms682425.aspx LPCTSTR lpApplicationName, //생성프로세스의 실행파일 이름LPTSTR lpCommandLine, //argc,argv인자 전달, 첫인자를 NULL로 주고 실행파일이름 인자 써도 가능LPSECURITY_ATTRIBUTES lpProcessAttributes, //보안속성 보통NULLLPSECURITY_ATTRIBUTES lpThreadAttributes, //쓰레드 보안속성 보통NULLBOOL blnheritHandles, //전달인자가 TRUE면 자식프로세스는 부모의 핸들중일부상속DWORD dwCreationFlags, //프로세스의 특성결정LPVOID..