2010/4/27
프로그램이 좀더 안정적으로 동작하도록 소스코드의 전반적인 수정.






중국발 넥슨 계정을 노리는 악성코드는
HttpSendRequestA와 HttpSendRequestW 의 인라인 후킹을 통해서 넥슨 ID와 비밀번호를 빼낸다고,

이 프로그램은 위 두 API 함수의 후킹여부를 알려주는 기능을 가지고 있습니다.
정상적인 프로그램이라면 위 두 함수를 후킹할리가 없습니다.

아무리 악성코드가 시스템에 몰래 숨어들어와서 작동하고있어도,
여전히 똑같은 수법을 쓰고있다면 , 이 프로그램에서 탐지할 수 있습니다.


코드는 간단합니다.
GetProcAddress를 이용하여 , 두 함수의 주소를 얻어온뒤 , 원본 바이트와 비교하게끔 하였습니다.
원본바이트는 wininet.dll에 직접 접근하여 얻어올수도 있겠지만,
귀찮아서(?) 하드코딩 시켜버렸습니다. (약간 호환성이 떨어지는 단점이 있을수가 있겠네요.)

HttpSendRequestA(또는 HttpSendRequestW) + - 5Bytes 를 검사합니다.

NOP
NOP
NOP
NOP
NOP
MOV EDI,EDI
PUSH EBP
MOV EBP,ESP






윈도우XP SP3 , 윈도우7   에서  Internet Explorer 8 환경에서 테스트를 완료했습니다.
IE6은 속된말로 XXX라서 , 테스트 안하려고했지만
그래도 국내에 사용자가 많아서 테스트했습니다.
IE7은 테스트 안했기때문에 잘 작동할지 장담하지는 못합니다.( 원본바이트가 다를수도 있음 )


인터넷익스플로러 띄운뒤 , 콘솔프로그램 실행하면됩니다.


VS2010에서 만들어졌기때문에  재배포 패키지가 필요합니다.
실행시 , 에러뜨시는분들은 vcredist_x86 설치하시면 됩니다.
설치 왜 해야되냐 , 따지시는분들이 있을수도 있는데 , 
언제가 될진 모르지만 차후에 VS2010으로 프로그램들이 쏟아져 나올것이 뻔하기때문에
미리 설치해두면 그냥 좋습니다.


안전하다고 나오면 안전한겁니다.
API가 변조되었다고 나오면,  뭔가 이상한놈이 달라붙어서 가로채가고 있을수도 있습니다.
따라서 최신버젼의 백신으로 아래의 폴더를 모든파일 검사 옵션으로 수동으로 검사하기를 권장드립니다.

C:\Windows\system
C:\Windows\Fonts
C:\Windows\system32




아래는 소스 파일입니다.
저작자 표시 비영리 변경 금지
신고
by Sone 2010.04.25 13:21