본문 바로가기

Dll Injection 으로 브라우저 URL 가져오기 제 dll이 injection 된 프로세스가 브라우저인 경우 해당 브라우저로부터 url을 뽑아내야하는 작업이 필요했습니다. 첫 번째로 생각한 방법은 특정 url에 접속될 때 호출되는 인터넷 관련 함수들을 후킹해서 url을 뽑아오는 것이었습니다.당연히 InternetExplorer, Chrome, Firefox 등등 모든 브라우저들에 대해서 전부 사용가능해야겠지요. IE 같은 경우는 InternetCrackUrlW 라는 함수를 후킹하면 url을 얻을 수 있긴 했습니다. www.nate.com 이라는 사이트를 url창에 치고 들어갔습니다만.. 처음에 한번만 나오고 그 뒤로 여러가지 url들에 대해 계속 요청을 하고 있어서 많은 값들이 나오게 됩니다. 그리고 chrome 같은 경우 InternetCrackUr.. 더보기
컴퓨터 사용기록 파일 삭제 툴(유용) 피시방이나 공공장소에 있는 공용 PC를 사용할 때 한번쯤 사용해볼만한 툴입니다.사실은 이것저것 살을 붙혀서 제대로된 기능을 하는 프로그램을 만들어보려했지만다른 일들이 너무 바빠서 당분간 여기에 시간을 투자하기 힘들 것 같아.. 그냥 만들어놓은 것만 콘솔로 기능 구현해서 올려봅니다. 기능은 간단합니다.컴퓨터 사용 전 해당 컴퓨터의 파일 상태를 전부 기록하는 스냅샷을 찍습니다.프로그램을 끄고 컴퓨터를 사용합니다. 중간에 재부팅해도 상관없습니다.컴퓨터를 다 사용했다면 두 번째 스냅샷을 찍어 첫 번째 스냅샷과 비교를 합니다.비교 결과 새로 생성된 파일이 있다면 전부 삭제를 해줍니다.스냅샷 속도는 엄청 빠른건 아니지만.. 이보다 더 빠른속도를 뽑긴 힘들 것 같습니다. 인터넷 사용기록이라던지, 새로 설치한 파일 등.. 더보기
Windows 메모리 유효성 체크 개발을 하다보면 해당 포인터가 유효한지 아닌지를 판별해야하는 경우가 많이 있습니다. 일반적으로 NULL 체크를 하면 대부분 해결되지만 랜덤한 메모리 주소에 접근 시 해당 메모리에 있는 값을 read/write 할 수 있는지 체크하기란 매우 까다롭습니다. 인터넷을 찾아보니 여러 블로그에 - IsBadCodePtr - IsBadReadPtr - IsBadStringPtr - IsBadWritePtr와 같은 함수를 쓰라고 나와있지만 이 함수들은 MSDN 설명을 보더라도 사용하면 안될 뿐더러직접 사용해보니 잘못된 메모리 영역을 인자로 넘기면 Crash가 발생하더군요. 그러면 스킵하고 또 어떠한 방법이 있을까요?가장 간단하게는 VirtualQuery 를 사용하는 방법입니다. MEMORY_BASIC_INFORMAT.. 더보기