16P by soulee 2023-04-11 | favorite | 댓글 5개

금융, 정부 웹사이트 등에 보안 프로그램으로 널리 사용되는 가상키보드(vKeyboard)는 크롤링 작업을 어렵게 만드는 주요 요인 중 하나입니다. 이에 대응하여 가상키보드를 우회하는 방법을 제공하는 파이썬 라이브러리를 소개합니다.

가상키보드 우회는 미리 캡쳐된 이미지와 유사도를 분석하는 방식으로 이루어집니다. 이를 위해 먼저 vKeypad-Studio를 사용하여 가상키보드 이미지와 데이터를 준비합니다.

vKeypad-Studio 사용 방법

  1. 가상키보드 이미지를 준비합니다.
  2. Figma에서 가상키보드 이미지를 업로드합니다.
  3. Figma에서 사각형 도구를 사용하여 가상키보드의 각 키를 덮어줍니다.
  4. Figma에서 작업한 내용을 SVG 파일로 내보냅니다.
  5. 터미널에서 vkeypad-studio [이미지 파일] [SVG 파일] 명령어를 입력합니다.
  6. 새로 뜬 창에서 이미지에 해당되는 키보드 키를 눌러줍니다.
  7. 생성된 assets 폴더의 이미지 파일과 data.json 파일을 따로 보관해둡니다.

이제 준비된 데이터를 사용하여 가상키보드 우회를 수행할 수 있는 파이썬 라이브러리를 사용할 수 있습니다. 이를 통해 정부나 금융 사이트의 가상키보드를 우회하여 크롤링 작업을 보다 원활하게 진행할 수 있습니다.

키 배열이 계속 바뀌는 케이스엔 적용 못하는건가요?

기본적으로 키 배열이 계속 바뀌는 케이스를 상정하여 만들었습니다.
vkeypad-studio를 이용해서 미리 이미지를 생성해두면, 그 이미지와 유사도 분석을 통해서 키 배열이 바뀌더라도, 인식이 가능합니다.

아 그렇군요... 리드미와 동영상 만으로는 작동 방식을 이해하기가 어려웠습니다. 꼭 피그마여야 할 것 같지도 않은데 명확하게 피그마를 지칭해서 혼란스럽기도 했구요. 아무튼 나중에 사용해보겠습니다 감사합니다.

부연 설명을 하자면, 기본적으로 이미지 유사도 분석을 통해서 어떤 위치에 어떤 키가 있는지 인식 합니다.

이미지 유사도 분석을 위해서는, 각 키별 이미지가 필요한데, 이를 자동화 하기 위해 만든 도구가 vkeypad-studio입니다.
피그마를 통해 키보드 이미지 위에 사각형을 쌓아주면, svg에 레이어가 쌓입니다. 이 레이어들의 좌표를 추출해서 이미지를 crop하고, 좌표, keycode를 기록합니다.
그리고 이렇게 저장해둔 이미지와, 좌표를 통해서 키를 분석을 할수 있는것 입니다.

사실 피그마를 쓰도록 한건 단순히 사용자의 편의를 위해서였습니다. 대부분 가상 키보드가 고정폭이고, figma에서 제공하는 auto-align이 워낙 뛰어나서 flow를 이렇게 제공해도 되겠구나 싶었는데, 오히려 더 어렵게 느껴질수도 있을것 같네요.

readme에 제대로 설명을 담지 못한 제 불찰입니다.. 말씀해주신 의견들로 readme를 다시 명확하게 볼수 있도록 수정 해보도록 하겠습니다.