편집기에서 문자열을 QR 코드로 읽을 수있는 어리석은 방법

4792 단어 vimscriptQRcodeCTF

발단



CTF에서 QR 코드 문제를 풀고 있을 때 수타로 QR 패턴을 입력할 수 있습니다.
특히 툴을 사용할 때는 수타 입력의 도중에 패턴을 확인하는 것이 힘들다.
또, 일반 텍스트가 실은 QR이었다니 문제일 때도 곤란하기도 합니다.
하나의 도구를 사용하여 문자를 QR로 변환하는 것은 번거롭고 확인하기 만하면 즉시 문자로 돌아가고 싶은 경우가 종종 있습니다.

해결



놀랍고 간단한 해결책이 있습니다. (기술 기사라고는 생각되지 않는 어리석은 방법입니다만.)
예를 들어, 다음과 같은 패턴을 작성했다고 가정합니다.
xxxxxxx___x__xx_xx_xx_xx__xxxxxxx
x_____x____x_xxxxx__x_x_x_x_____x
x_xxx_x_x___xx__xxxxx__x__x_xxx_x
x_xxx_x_xx_x__x_x__xxxxxx_x_xxx_x
x_xxx_x_x__x___x__x__x__x_x_xxx_x
x_____x_xx_x_xxxxx__xx____x_____x
xxxxxxx_x_x_x_x_x_x_x_x_x_xxxxxxx
________x___x__x__x__x___________
x_xxxxx__x___xxx_x___xxx__xxxxx__
_xxx____x_______x_xxxxxxx_x_____x
xxxx_xxx__xxx__xx_x_xx__xx____xx_
xxx_______xx__x_x__x_xx_xx_x_xx__
___xxxxx_x_xx_____xx_x___x_xx__xx
__xxx__x__x__xxxx___xxxx_xx___x_x
x_x_x_xxx_xx__x____x_x___x_xxxxx_
__xx___x_x_x____x__xxx__xxx__xx__
x_xxxxxxx_x_____xx_xxxx_x__xxx_x_
________x_x___xxxx_xx__xx_x__xx_x
xx_xxxx__xx_xx_xxx__x_x____x_xxx_
___x___xxxxx_x_x_xx____xx_x_x_x_x
xxxxxxx__x___x__x__xxxx_xx__x____
x_x______x_____x__x____x__x___xx_
x_x_xxxx_x____xxxxx_xx__x___x_xx_
x_x_x__x_______x__x____xx___xxxxx
x_x_x_x_xx_x__xxxx__xxx_xxxxxxx_x
________xx_x_x__x_x__xxxx___x_xxx
xxxxxxx_______xxx_x__x_xx_x_x_xx_
x_____x_x_x__xxx____xxxxx___xxxx_
x_xxx_x_xx_____x__x__x__xxxxx__x_
x_xxx_x_x______xxx__xxxxxx_xxx___
x_xxx_x_xx_xxx_____x_x____x__x___
x_____x___xx____x_xxxxxx_x_xxxx__
xxxxxxx_xxxxx_x__x_xx_xxxx_____x_

x가 검은색, _가 흰색입니다.
이것이라면 어떤 위치 관계인지 잘 모릅니다. 직관적이지 않고 보기 어렵습니다.
그러나 x를 가리키고 _를 (전각 공간)으로 대체하면,
靈靈靈靈靈靈靈   靈  靈靈 靈靈 靈靈 靈靈  靈靈靈靈靈靈靈
靈     靈    靈 靈靈靈靈靈  靈 靈 靈 靈     靈
靈 靈靈靈 靈 靈   靈靈  靈靈靈靈靈  靈  靈 靈靈靈 靈
靈 靈靈靈 靈 靈靈 靈  靈 靈  靈靈靈靈靈靈 靈 靈靈靈 靈
靈 靈靈靈 靈 靈  靈   靈  靈  靈  靈 靈 靈靈靈 靈
靈     靈 靈靈 靈 靈靈靈靈靈  靈靈    靈     靈
靈靈靈靈靈靈靈 靈 靈 靈 靈 靈 靈 靈 靈 靈 靈靈靈靈靈靈靈
        靈   靈  靈  靈  靈           
靈 靈靈靈靈靈  靈   靈靈靈 靈   靈靈靈  靈靈靈靈靈  
 靈靈靈    靈       靈 靈靈靈靈靈靈靈 靈     靈
靈靈靈靈 靈靈靈  靈靈靈  靈靈 靈 靈靈  靈靈    靈靈 
靈靈靈       靈靈  靈 靈  靈 靈靈 靈靈 靈 靈靈  
   靈靈靈靈靈 靈 靈靈     靈靈 靈   靈 靈靈  靈靈
  靈靈靈  靈  靈  靈靈靈靈   靈靈靈靈 靈靈   靈 靈
靈 靈 靈 靈靈靈 靈靈  靈    靈 靈   靈 靈靈靈靈靈 
  靈靈   靈 靈 靈    靈  靈靈靈  靈靈靈  靈靈  
靈 靈靈靈靈靈靈靈 靈     靈靈 靈靈靈靈 靈  靈靈靈 靈 
        靈 靈   靈靈靈靈 靈靈  靈靈 靈  靈靈 靈
靈靈 靈靈靈靈  靈靈 靈靈 靈靈靈  靈 靈    靈 靈靈靈 
   靈   靈靈靈靈靈 靈 靈 靈靈    靈靈 靈 靈 靈 靈
靈靈靈靈靈靈靈  靈   靈  靈  靈靈靈靈 靈靈  靈    
靈 靈      靈     靈  靈    靈  靈   靈靈 
靈 靈 靈靈靈靈 靈    靈靈靈靈靈 靈靈  靈   靈 靈靈 
靈 靈 靈  靈       靈  靈    靈靈   靈靈靈靈靈
靈 靈 靈 靈 靈靈 靈  靈靈靈靈  靈靈靈 靈靈靈靈靈靈靈 靈
        靈靈 靈 靈  靈 靈  靈靈靈靈   靈 靈靈靈
靈靈靈靈靈靈靈       靈靈靈 靈  靈 靈靈 靈 靈 靈靈 
靈     靈 靈 靈  靈靈靈    靈靈靈靈靈   靈靈靈靈 
靈 靈靈靈 靈 靈靈     靈  靈  靈  靈靈靈靈靈  靈 
靈 靈靈靈 靈 靈      靈靈靈  靈靈靈靈靈靈 靈靈靈   
靈 靈靈靈 靈 靈靈 靈靈靈     靈 靈    靈  靈   
靈     靈   靈靈    靈 靈靈靈靈靈靈 靈 靈靈靈靈  
靈靈靈靈靈靈靈 靈靈靈靈靈 靈  靈 靈靈 靈靈靈靈     靈 


정확하게 좋아집니다.
게다가, 이 방법 의외로 바보로 할 수 없어 그대로 카메라로 읽을 수 있습니다.
문자이므로 취급도 편하고, 빨리 작업으로 돌아갈 수 있으므로 추천합니다.
대체를 함께 간단하게 vimscript에 작성하면 즉시 패턴을 확인할 수 있습니다.
command! QRencode call QR_encoder()
command! QRdecode call QR_decoder()

function! QR_encoder()
    %s/x/靈/g
    %s/_/ /g
    %s/?/?/g
endfunction

function! QR_decoder()
    %s/靈/x/g
    %s/ /_/g
    %s/?/?/g
endfunction0

덧붙여서 획수가 많아 사각형이라면 어떤 한자라도 OK입니다. 단, 기호의 ■는 크기 부족으로 카메라가 읽히지 않고, 보기 어렵습니다.

그건 그렇고



이미 이미 완성되어 있고 패턴을보고 싶다면, 조금 전의 도구를 사용하여,
# ./sqrd.py -v QR.txt 



이것만으로 쉽게 볼 수 있습니다.
이쪽이 깨끗하기 때문에 일일이 확인하지 않으면 이쪽이 추천합니다.
손을 치면서 조금씩 전경을 확인할 때는 나의 방법도 기억해 주세요.

마지막으로



기술적으로는 끔찍한 것입니다만, 방법적으로는 최고이므로 무심코 써 보았습니다.
QR을 치는 것은 힘들기 때문에, 마우스라든지로 포치포치 입력할 수 있는 툴에서도 만들까라고 생각합니다.
라고 할까, 화상 인식으로 그대로 보완해 읽어들일 수 있는 툴도 지금의 자신의 기술로 충분히 만들 수 있을 것 같습니다.
CTF로 시간이 걸리기 쉬운 곳이므로, 편리한 툴로 대항해 가고 싶습니다.

좋은 웹페이지 즐겨찾기