미유키의 심심풀이 글적기판~

Posted
Filed under 잡담/컴퓨터 이야기
이곳저곳에 돌린 메일에도 별 답이 없는 걸로 봐서
이 문제를 별로 크게 보는것 같지 않네요...

일단.. iOS 쪽에서 패치가 나와야지만 해결 되겠지만,
유니코드 방식으로 글이 올라가는 곳에서는 약간의 패턴 검사만 해 주는 것으로
위 문자를 막을 수 있을 듯 싶습니다.

일단 간단하게 서버측에서 막는 방법은
UTF-8에서 내부 문자중 0xCC 코드가 반복된 다는 점을 찾아 그 부분만
정규식으로 막아 주는 방법으로 테스트 해 보니, 잘 동작 하는것을 확인하였습니다.

제가 잘 쓰는 언어가 PHP 인지라 일단 PHP 에서만 테스트 해 보았습니다.
$pattern = '/[\x{0300}-\x{032F}]+/u'; // 문제 언어 막기
$data = preg_match_all($pattern, $teststr, $matches);
식으로 처리하면 위험코드가 들어오면
1을 리턴 하게 됩니다.

해당 코드의 동작 방식을 완벽하게 이해하지 못한 상태에서의 임시 방편 인지라...
제 생각대로의 패턴 코드가 아니라면 문제 발생을 완벽하게 막을 수 있는 것은 아니오니,
참고 정도로 봐 주시면 될 듯 합니다~^^
2013/09/05 12:38 2013/09/05 12:38

미유키의 심심풀이 글적기판~

誘몄쑀?ㅼ쓽 ?ъ떖?€??湲€?곴린??

onozol

Powyższe zagadnienie doprowadzone również zaburzeniem gospodarki hormonalnej, menopauza poniższe przysporzone także zaburzeniem gospodarki hormonalnej, pojawiają. Dojrzewanie i oczywiście walenia serca, które dość często blokują nasze quizy na wieczorach panieńskich życie. Nigdy są z tego powodu do chociażby sezonu przyszłych mam.

Posted
Filed under 잡담/컴퓨터 이야기
iOS6와 OS X 10.8 마운틴 라이언 사용자 분들은 각별한 주의가 필요한 사건이 발생 하였습니다.

사실 이 버그가 국내에 알려진지는 몇일 지나지 않았지만,
정말 대형 버그란 사실은 아는 분이 별로 없는 듯 싶습니다.

일단 간단하게 사건을 설명 하자면
일정 문자열이 나열 되어 있는 글자를 위에 설명한 OS를 가진 장치가
엑세스를 하게 되면 그 앱이 죽어 버리는 문제가 발생 합니다.
버그문자열

버그문자열

그런데 문제는 그리 단순하지 않습니다.

정확히 위 문제가 발생하는 조건을 말씀 드리자면,
특수문자가 화면에 보여 지는 순간 앱이 죽습니다.
(정확히 이야기 하자면, "화면에 텍스트를 표시할 때 이용하는 코어텍스트(CoreText) 폰트 렌더링 프레임워크의 버그" 라고 합니다.)

이 특수 문자열이 푸시 메시지나 메신져로 들어오게 되면 아주 골치 아픈 문제가 발생해 버립니다.
또한 테스트 결과 wifi의 SSID 로 이 문자를 쓰게 되도 문제가 발생 되는 현상을 확인 하였습니다.

일단 발생하는 문제를 알려 드리자면 다음과 같습니다.
- 특수문자가 포함된 웹 페이지에 들어감
증상 : 웹 브라우저가 죽어 버립니다.
- 특수문자가 들어간 푸시 메시지를 수신할 경우
증상 : 단말기가 리붓 되어 버립니다., 단말기가 리붓된 상태에서 푸시로그를 확인하면 또다시 리붓됨
- 메신져로 특수문자를 수신할 경우
증상 : 메신져 푸시가 뜨면서 단말기 리붓됨, 메신저로 들어가면서 수신한 메시지를 보려고 하면 메신저가 죽어 버림.
- 누군가가 wifi의 SSID로 위 특수 문자를 쓸 경우
증상 : 설정에서 wifi를 검색하는 화면에 들어가면 설정이 죽어 버림.


일단 위와 같은 문제가 발생하는 데이터를 분석해 보았는데
다음과 같으니, 개발자 분들께서는 꼭 참고 하시기 바랍니다.

발생하는 조건은 UTF-8 환경입니다.

실제 문제가 발생하는 문자 부분은 아래와 같습니다.
실제 문제 발생 부분

실제 문제 발생 부분

- 문자열에서 버그 발생 포인트 hex
D8 AE 20 CC B7 CC B4 CC 90 D8 AE

- 이 중 실제 문제를 일으키는 코드 부분
D8 AE 20 CC B7 CC B4 CC 90 D8 AE
(표시 되지 않은 부분의 경우 utf-8 규격에만 맞는 데이터라면 다른걸로 바뀌더라도 문제가 발생합니다.)

궁금하신분은 아래 more 부분을 열어 보시면;; 위에 설명한 기기의 경우 바로 앱이 죽어 버리는 결과를 보실 수 있습니다!
(참고로 기본 오류 문자열이 아닌. 제가 가능 여부를 확인하기 위해 커스터마이징 한 문자열 입니다.)
오픈주의!주의!주의!주의!주의!

more..



P.S. 사실 나쁜쪽으로 응용하는 분들이 많아 질까 하는 생각에
글을 써야 될까 말아야 될까 고민도 많았지만,
모르는 채로 지나가면 패치가 배포되기 전에 매우 큰 일로 번저 나갈 가능성이 보여,
혹시나, 앱 개발자나, 보안 개발자분들이 조금이라도 일찍 알아 주시길 바라며 이 글을 써 봅니다.

P.S.2 대형 메신저 업체에 위와 같은 문제를 조치해 달라는 메일을 보냈으나,
과연 언제쯤 처리를 해 줄지 미지수네요...
2013/09/04 23:44 2013/09/04 23:44

미유키의 심심풀이 글적기판~

Posted
Filed under 지식/컴퓨터
회사에서 주 역할은 C 개발이지만,,
가끔가다 MFC를 해야 할때가 있다...

나름 개인적으로 많이 사용한것이 VS2003이라,,,
아직도 가끔 MFC 프로그램을 제작할때면
VS2003을 사용하곤 한다..

그런데 VC6.0에서 바로 2003급으로 넘어가서 그런지
VS2003에는 자잘한 버그가 많다...

이번건 역시 예전에 무지 고생하다가 해결했는데
또 간만에 프로그램 만들다가
몇시간 고생을 해 버린 덕분에

블로그에 안까먹도록 기록해 두려고 한다....

서두가 길었지만-_-;; 막상 답은 간단하다...
리소스 추가하려는 파일의 디렉토리에 한글이 들어가면 안된다-_-;;
(띄어쓰기던가?;;;;)
그냥 잘 안되면 루트디렉에 영문폴더 하나 만들어서
파일 불러다 쓰면 아무 문제 없이 잘 동작한다....

VS2003 사용할 사람이 이제 별루 없어서 이런 문제는 안겪을지도 모르겠지만
나름대로 무지 삽질한 사건이다....
(사실 VS2005 이후에 수정 되었는지는 안써봐서 모름-_-;)
2009/09/22 20:03 2009/09/22 20:03
나그네

대박입니다. 두시간 삽질하다 미유키님덕분에 해결하고 갑니다. 감솨~

미유키

요 몇달간 계속 바빠서 댓글이 늦었습니다^^;;
도움이 되셨다니, 다행이네요~
지금은 VS2008을 쓰는데 2003 같은 문제는
발생하지 않는듯^^
원인은 아무래도 2003이 완벽한 유니코드 체계로 개발이 되지
않은 것 같은 느낌이 드네요...