메모용 글.

솔직히 내가 이걸 직접 설명할정도로 이해를 하진 못했다..

threshold는 '문턱'이라는 의미로, 한계치를 정해놓고 영상을 흑과 백으로 나누고 싶을때 쓴다. 이진화라고 하기도 함.

종류가 되게 다양한데 otsu threshold외에는 너무 진입장벽이 높다...(주관적)

통계적인 부분이 포함되어있는거같다. 난 일단 최대한 이해를 포기하도록했다....

4학년때 시뮬레이션 할 때가 생각나는거같긴한데...좋은기억이아니라서..


http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html

자바로 된 예제와 설명(영어의 압박은 논외로 치자)이 있다.


사용 예시.

원본, 이진화시킨 결과.

사실 그렇게 건전(?)한 짓은 아니다. 완제품을 뜯어보고 어떻게 만들었나 들여다보는 짓이라고 할 수 있다.

자바가 아무래도 머신 위에서 돌아가서 그런지 역공학 하기가 타 언어에 비해 비교적 쉬운 모양.

가끔 디컴파일을 해야할 때가 있어서 메모용으로 기록하는 글이라 정성은 좀 부족할지도 모른다.


1. APK 파일 추출

탐색기 앱 등이 보통 앱 백업 기능을 지원하는데 이를 이용하여서 컴퓨터로 옮겨도 되고, 구글링해서 추출하는 사이트를 통해 받아도 된다.

후자는 에러가 꽤 많이 나는 편이고, 페이지 내 낚시성 광고가 많아서 좀 그렇다.


2. Dex2Jar 다운로드

소스포지 통해서 최신버전을 받으면 된다. apk 파일이 있는 곳에 압축을 풀자.

탐색기에서 쉬프트(컨트롤인가...) 오른쪽 클릭을 하면 명령창을 해당 위치에서 바로 열 수 있다.

그대로 배치 파일 입력 -> 파라미터로 해당 apk파일명을 적으면 jar 파일이 뿅 하고 나온다.

이 때 유의해야할 부분은 경로 상에 '공백'이 있으면 에러가 발생한다는 점. 제대로 적었는데 에러가 나온다면 대부분 경로, 파일명 문제인 것 같다.


3. DECOMPILE!

자바 디컴파일러 아무거나 받아서 jar 파일을 열면 된다. 보통 jd gui를 사용하게 된다.

간혹, 소스가 보이지 않는 경우가 생기는데, 그 부분을 꼭 봐야겠다!면 해결방법은 간단하다.

디컴파일러를 다른걸 쓰면 된다 -_-

http://www.javadecompilers.com/ <- 온라인으로 디컴파일해주는 사이트이다. 파일로 저장도 가능.

간단한 자동 업데이트 프로그램이 필요해서 작업중. 네트워크상으로 뭔가 주고받는건 정말 오랜만에 만들어본다.

mfc로는 해본 적이 없는듯? 아무튼 기록용 글. 나중에 또 찾을거같아서.


* Rich Edit 2.0

  1. 단순히 추가만 해서는 사용이 불가능하다. 실행조차 안됨.
  2. "AfxInitRichEdit();"을 코드 상에 추가해야한다. OnInitDialog에 넣으면 될 줄 알았는데 안 됨.
  3. InitInstance내에 넣어야 한다고 한다. 하지만 이 코드는 ☆☆☆☆Dlg.cpp에는 없음.
  4. 알고보니 (적어도 나는) 절대 들어갈 일 없는 ☆☆☆☆.cpp파일에 있었다.
  5. 추가하니 잘 뜬다.
귀찮아서 안쓰기로 했다. 역시 리스트박스가 최고

* Progress Bar

  • 일반적으로 파일 다운 진행같은 경우 스레드로 만들어서 돌리는 모양.
  • 무한 진행은 SetMarquee(스레드없어도 문제X). 인자는 얼마나 천천히 진행하느냐 인 것 같은데, 0이어도 별 문제 없음.

* Ping

https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa366050(v=vs.85).aspx

귀찮네. 안 할래.


* HTTP 받기

WinInet이용. 인터넷 핸들 열고, URL 여는 식인 듯. 아 귀찮아.

이거때문에 파일 호스팅할 서버 찾고 홈페이지까지 열었다. 주객이 전도된 느낌마저 있다....

apache상에서 password protection 된 폴더는 Unauthorized가 뜬다 이거 어떻게 해결할지 고민중...

-> 약간 다른 함수를 쓰기로 했다.

https://support.microsoft.com/ko-kr/kb/234913 참조

첫번쨰 방법은 실패 -> username과 password지정해서 connect

두번째 방법은 http://microsoft.public.inetsdk.programming.wininet.narkive.com/8PDvK30R/filled-username-password-in-internetconnect-but-internetreadfile-shows-unauthorized

이것도 실패.......................... 아파치 폴더 잠금 때문인지 아닌지 모르겠지만 그냥 FTP를 쓰도록 하기로 하였다...^v^...


* ZIP 압축 해제

운영체제 자체에서 제공되는 걸 이용하는 방법, 직접 헤더 따서 읽어들이는 방법, 라이브러리를 이용하는 방법 등이 있다.

솔직히 이미 만들어져 있는 라이브러리 쓰는게 천배만배 나은 걸 아는데 무슨 생각인지 쓰기 싫다. ZIP이 생각보다 구조가 그리 복잡하진 않은듯. 압축된 경우 푸는 방법이 좀 의문이긴 하지만 뭐 푸는 법이 있겠지...

+ Recent posts