키로깅 내용 한글 변환

 | C, C++
2007/12/11 00:12

키로깅 내용 한글 변환




외산 키로거로 로깅을 한 경우는 한글 처리가 되지 않는다는것을 잘 알고계실 겁니다.
그래서 "김부장 연봉 알아냈다" 같은 문장이 "rlaqnwkd dusqhd dkfdksoTek" 라는 단어로 기록되겠죠 :p

이것을 극복하기 위해서는 키 입력을 받았을 당시 키로깅을 할 때 한글화 처리가 필요합니다.
하지만 이미 텍스트로 저장해버린 상태에서는 그게 힘들어지겠죠 :(
그래서 고민을 해봤습니다. 어떤식으로 변환을 하면 될까...

결국 생각난 꽁수는 "rlaqnwkd dusqhd dkfdksoTek" 따위의 버퍼를 모두 메모리에 쌓아두고
노트패드를 띄운뒤 강제로 한글 키 상태로 바꿔주고 키보드이벤트로 그걸 그대로 타이핑 해주는
방법입니다. 이른바 매크로 기능을 활용한거라 볼 수 있겠네요(이 꽁수의 핵심적인
아이디어를 내어준 hackscode (구 Dr.Hong) 에게 감사 드립니다 ㅋㅋ)

일단 간단하게 코드를 설명해 보면,
1. 먼저 qkqhajdxnddk ..... 등이 기록된 텍스트 파일을 읽어서 버퍼에 넣습니다.
2. 그리고 CreateProcess()로 노트패드를 실행
3. keybd_event()를 이용하여 한글키로 바꿔줍니다. 최대한 번거로운 코딩을 피하기 위해서
   CreateProcess()한 후에 대기시간으로 걍 1초간 슬립을 주는 쪽팔린 짓도 겯들였습니다.



4. 그리고 사이즈만큼 루프를 돌면서 메모장에 찍어댑니다. 두두두두 매크로 움직임을 볼 수
있겠네요 ㅋ



대략 이런 모양이 되겠죠 ㅋ

대충 급조해서 만들어 변환할 순 있을 겁니다.
단점은 내용이 많으면 그만큼 시간이 오래 걸리겠죠 ㅋ
그리고 알트탭을 한다던가 포그라운드를 다른 프로세스로 전환하면 대형사고가 발생할겁니다 ㅋ

아래는 풀 코드 입니다.




물론 이 코드에는 많은 문제가 있습니다.
키로거가 <BS> <SP> 따위로 특수키를 처리한다면 그게 <ㅠㄴ> <녜> 따위로 입력될 것이고
원래 영어로 된 문자열도 엉망진창이 되겠죠 ex) fuck -> 려차 ,  ssibal -> ㄴ냐ㅠ미 .....
그리고 개행 처리도 해놓지 않았죠. 문단이 엉망진창이 될겁니다.
(사실 Sleep()이 개발자로서 상상할 수 없는 짓을 한 가장쪽팔린짓이기도 합니다 ㅋ)

이같이 문제 투성이의 코드지만 어쨌든 역할은 충분히 하고 있습니다.
그리고 일단 내용만 까뒤집어볼 목적으로 제작한 것이기 때문에 그런 사소한 처리까지 하기는
너무 귀찮습니다.

그냥 이런 꽁수도 있다는 것을 알리기 위함으로 제작한 급조 코드임을 말씀 드립니다 :p
혹시 변환하는 더 좋은 방법 있으면 좀 알려 주세요 ㅠㅠ


window31. 2007년 12월


ps  아 한글 처리 되는 키로거도좀 알려주세요 ㅠ ㅠ

Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/90 관련글 쓰기

댓글을 달아주세요

  1. 2007/12/11 09:35
    댓글 주소 수정/삭제 댓글
    흠.. 생각을 좀 해보니 '키로깅'이라는 기술 자체가 누른 키를 기록하는거라
    한글을 처리하기에는 부적절 하지 않나 싶네요.
    데이터를 스니핑 하는거라면 데이터를 통째로 변환해버리면 될테지만
    키로깅 자체는 한번에 하나의 키만을 인식하게 되고 어디서 부터 어디까지가
    하나의 한글인지 알기 힘들테니까요. ~_~

    ps. 한글 처리되는 키로거 아직 못본듯.. ㅠ_ㅠ)
    • 2007/12/12 12:30
      댓글 주소 수정/삭제
      네 그렇게 생각하고 있었는데
      실제로 IME를 잘 건드려보면 구분해서 로깅할 수 있다고 하네요 ^^
  2. 2007/12/11 09:58
    댓글 주소 수정/삭제 댓글
    샘플중에 있는지 한번 찾아봐야 겠네요.^^
    • 2007/12/12 12:31
      댓글 주소 수정/삭제
      오.. 역시...
      사육하고 있는넘들중에 한번 봐주세요 ㅋㅋ
  3. hackscode
    2007/12/11 13:09
    댓글 주소 수정/삭제 댓글
    ime 잘 쪼물딱거리면 한글 키로깅도 어느 정도 가능함..ㅎㅎ
  4. 2007/12/11 14:47
    댓글 주소 수정/삭제 댓글
    RSS를 돌다가 너무 표현이 너무 재미있어서 한자 적고 갑니다. ^^;;;
    정 불편하시다면 한글 오토마타를 사용해보시는 것은 어떨까요?
    한글 오토마타를 내장하면 굳이 메모장에 붙여넣지 않아도 한글로 쉽게 변환할 수 있습니다. 물론 IME를 써도 괜찮겠지요. ;)
    • 2007/12/12 12:31
      댓글 주소 수정/삭제
      오토마타라 좋은 정보 감사합니다.
      꼭 찾아서 해봐야겠네요 ㅎㅎ
  5. 2008/11/04 15:06
    댓글 주소 수정/삭제 댓글
    http://search.cpan.org/~jeen/Lingua-KO-TypoCorrector-0.01/lib/Lingua/KO/TypoCorrector.pm

    한국사람중에 이런모듈을 만든 사람이 있더군요 후욱
  6. 2012/03/20 09:56
    댓글 주소 수정/삭제 댓글
    Excellent website. Nice writing comments system. Sorry for the off-topic posting, nevertheless I ended up being extremely astounded with Djokovic\'s play in the final of the Aussie OPen this year. The guy is definitely unrivaled. He proved he had been as formidable as iron. Simply consider about he he could defeat Nadal who had previously been so enthusiastic to win as well as really was so excited up during the 5th set. I am starting to feel that Djokovic has been doing some faith based work to bring some aids on his side to help him secure such matches against the best players in the planet. What is your opinion about Rafa's game?

BLOG main image
by window31

카테고리

분류 전체보기 (281)
Reverse Engineering (21)
C, C++ (20)
Kernel (8)
Guitar (19)
잡담 (77)
etc (8)
who am i (8)
보안 이야기 (88)
Tools (3)
월간 마이크로소프트웨어/그.. (28)

글 보관함