본문 바로가기

VfZwCreateFile 의 정체 먼저 내 드라이버에서는 nt!ZwCreateFile 주소를 가져와 무언가 작업을 하는 부분이 있다. 이 작업이 실패를 하게되면 드라이버는 원하는 기능을 수행하지 못하게 된다. 내가 만들어놓은 드라이버가 동작 중 pool 헤더가 깨져 BSOD가 발생하는 현상이 간혹 발생하길래 verifier로 확인을 하기 위해 해당 기능을 켜고 pool 부분을 모니터링 하려했다. 하지만 드라이버가 기능 동작을 못하고 있는 것을 발견하고 확인을 해보니 위에서 nt!ZwCreateFile 주소를 가져오는 부분에서 잘못된 주소를 가져오고 있는 것을 확인했다. mov edx,dword ptr [My!_imp__ZwCreateFile (863ee110)] 863ee110={nt!VfZwCreateFile (83394ddb)} 모듈.. 더보기
Createing Self Signed Certificate & Code Signing 로컬 PC에서 Self Signed Certificate를 만들어보고 해당 인증서로 바이너리에 코드 사이닝을 해보는 시간을 갖는다.어떤 작업을 시작하는데 있어서 인증서 관련 비교 분석 할일이 생겨 이것저것 읽어보던 중 Self Signed Certificate 라는게 있어서 한번 알아보았다. 1. cer, pvk 파일 만들기makecert -r -n "CN=EZBEAT CA" -sv cert.pvk cert.cer makecert 는 인증서를 생성한다.-r : self signed certificate 생성-n : 인증서 이름 설정, 앞에 "CN=" 이라는 prefix를 붙혀야한다.-sv : private key를 생성해 파일로 저장한다. 확장자는 .pvk 그리고 주어진 인증서 이름으로 인증서를 생성한다.. 더보기
Windows Access Tokens Access Tokens Access Token은 프로세스 또는 스레드의 security context 를 나타내는 오브젝트이다. token에 포함되어 있는 정보에는 프로세스 또는 스레드와 관련되어 있는 유저 계정의 identity 와 privileges가 있다. 유저가 로그온 했을 때, 시스템은 security database에 저장되어 있는 정보와 비교해 유저 패스워드를 확인한다. 만약 패스워드가 인증에 성공했다면, 시스템은 access token을 생성한다. 사용자를 대신해 실행된 모든 프로세스는 access token의 복사본을 가지고 있다. 시스템은 스레드가 securable object와 상호 작용을 한다던지 privileges를 요구하는 시스템 작업 할 때 사용자를 식별하기 위해 access.. 더보기