Profile cover photo
Profile photo
Yonghwan Roh
somma
somma
About
Posts

Post has attachment
코드 리뷰
BoB 에서 프로젝트 멘토링을 하면서 코드 리뷰를 하다가, 기록을 남겨두면 좋을것 같아서 적어봅니다. 아래 함수는 특정 레지스트리 키 경로를 입력받고, 키 내부의 값을 읽어서 출력하는 함수로 보이네요. int Reg_Read(const char* subkey, TCHAR* value) {
LONG ret;
DWORD data_size = 1024;
DWORD data_type;
TCHAR* data_buffer = (TCHAR*)malloc(data...
Add a comment...

Post has attachment
PreviousMode (한글 번역)
MSDN 원문주소: https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/previousmode PreviousMode 유저모드 애플리케이션이   Nt   또는   Zw   버전의 네이티브 시스템 서비스 루틴을 호출하면 시스템 콜 매커니즘이 호출 스레드를 커널모드로 트랩합니다. 매개 변수 값이 유저모드에서 시작되었음을 알리기 위해 호출자   thread object 의   PreviousMode...
Add a comment...

Post has attachment
Using Nt and Zw Versions of the Native System Services Routines (한글 번역)
MSDN 원문주소 : https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines Using Nt and Zw Versions of the Native System Services Routines Windows 의 네이티브 서비스 API 는 커널모드에서 동작하는 루틴들의 집합으로 이루어져있...
Add a comment...

Post has attachment
vcpkg 사용하기
vcpkg vcpkg는 curl, boost, openssl 같은 자주 사용되는 3rd party 라이브러리들을 Visual Studio 에서 쉽게 사용할 수 있게 해주는 패키지 매니저입니다. openssl 같은 라이브러를 직접 빌드하려면 정말 귀찮고, 짜증 나는데 vcpkg 를 사용하면 이런 귀찮은 일들을 알아서 자동으로 다 해줍니다. Quick start vcpkg 를 사용하려면  github  을 clone 하고, 로컬에서 빌드만 하면 됩니다. Vis...
vcpkg 사용하기
vcpkg 사용하기
bugsfixed.blogspot.com
Add a comment...

Post has attachment
ASSERT, ASSERT, ASSERT
아래의 코드를 봅시다. busy_write 라는 전역변수를 통해서 아주 간단한 배타적 접근을 구현하고 있습니다. int busy_write = 0;
int value_write = 0;

int funcA()
{
//
// #1 lock 을 걸어주고
//
if (1 == InterlockedCompareExchange(&busy_write, 1, 0))
{
goto Cleanup;
}

//...
Add a comment...

Post has attachment
**
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO  플래그를 사용하는 이유 delete 미니필터 샘플  을 보면 아래와 같이  IRP_MJ_SET_INFORMATION  콜백 핸들러를 등록할때  FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO  를 사용하는 것을 확인할 수 있다. CONST FLT_OPERATION_REGISTRATION Callbacks[] = {
...
...
Add a comment...

Post has attachment
**
이 글에서는  CreateFile()  API 두번째, 세번째 파라미터인  dwDesiredAccess ,  dwShareMode  에 대해서 정확히 파악해보고자 합니다. 먼저 퀴즈로 시작해 보겠습니다. A 라는 프로세스는  abc.log  라른 파일에 데이터를 쓰고, B 라는 프로세스는 해당 파일을 읽어서 화면에 출력하는 코드를 작성한다고 가정합니다. A 프로세스는  abc.log  파일에 로그를 쓰기 위해  FILE_GENERIC_WRITE  접근 권한...
Add a comment...

Post has attachment

Post has attachment
FLT_STREAM_CONTEXT vs FLT_STREAMHANDLE_CONTEXT
몇년만에 드라이버코드를 작성할 일이 있어서 공부중입니다. 파일시스템이나 미니필터는 바닥부터 작성해본적이 없어서 공부하기가 쉽지 않네요. FLT_STREAM_CONTEXT 가 FLT_STREAMHANDLE_CONTEXT 뭐가 다른건지 헤깔려서 찾아보다가 정리했습니다. FLT_STREAM_CONTEXT vs FLT_STREAMHANDLE_CONTEXT FLT_STREAM_CONTEXT 와 FLT_STREAMHANDLE_CONTEXT STREAM_CONTEXT ...
Add a comment...

Post has attachment
하이퍼바이저 구현을 위한 공부 방법
howto_study_hypervisor Hypervisor 구현 방법을 공부하기 위한 가이드 레퍼런스, 메뉴얼 당연히 인텔/AMD 메뉴얼입니다. 무식하게 읽으면 어려워서, 중간에 포기하기 십상입니다만, 어느정도 개념이 잡히면 가장 먼저 보게 되는게 메뉴얼입니다. 경험상 인텔메뉴얼 만큼 좋은 자료는 없었습니다. (전 AMD SVM 은 안봐서 모릅니다. 동작 방식은 거의, 완전히 비슷합니다.) 개인적인 경험으로는 인텔메뉴얼의 Virtual Machine Ex...
Add a comment...
Wait while more posts are being loaded