1. 안드로이드 APK 디컴파일 (Android APK Decompile) 이란?




  • 디컴파일 이란 무엇인가?



네이버에 디컴파일 이라고만 쳐봐도 많은 내용들이 검색 될 것입니다.
자세한 내용은 네이버 검색 해보시고

어떤것을 할 수 있는지 먼저 보여드리겠습니다.
보는게 이해가 제일 빠르죠? ㅎ 의욕도 생기고~~


우선~!!!
개인적인 테스트 용도로, 학습을 목적으로, 스스로 혼자 하는거야 상관없겠지만, 배포를 목적으로 한다면 법적으로 문제가 될 것입니다. 이점 반드시 참고하시기 바랍니다.
저역시 수정된 apk를 배포하진 않습니다.

아래 프로그램은 단지 디컴파일이 무엇인지 쉽게 설명하기 위해 예를 든 것입니다.
(인지도가 있는 게임으로 설명을해야 학습이 잘 되겠죠~^^)






예 1 ) 클래시로얄 중복설치. 부계정 만들기 
(CLASH ROYALE duplication)


일반적으로 안드로이드폰에서는 동일한 어플을 중복으로 설치 할 수 없습니다.
샤오미폰 MIUI 에서는 듀얼앱 기능이 있습니다만~

아래 영상은 미뮤로 테스트 한 것입니다. 녹스도 되며, 폰에서도 됩니다.
모든 폰에서 테스트 한 것은 아니기 때문에 일부폰에서 안될수도 있습니다.^^









예 2 ) 소스 보기


디컴파일 후 jd-gui 라는 툴을 이용하면 쉽게 소스레벨로 볼수 있습니다.
apk studio 라는 프로그램도 가능합니다.

아래 동영상에서 왼쪽항목을 선택하면 소스가 보입니다. 소스가 보이면 문제가 될 수 있어 클릭은 하지 않았습니다.





디컴파일을 하면 이런것들을 할 수가 있습니다~



개발하시는 분들은 자신이 개발하는 프로그램과 유사한 프로그램이 어떻게 구현되었는지 확인해보기 위해 디컴파일을 하는 경우가 있습니다.

일반인들은 이렇게 부계정을 만들때, 또는 크랙을 할때 사용을 합니다.


다음 글에서는 디컴파일 하는 방법을 순서대로 정리하겠습니다.

각 항목들에 대한 자세한 설명들은 하지 않을 것입니다.

궁금하시면 네이버 검색해보세요~^^

세부적인 내용을 몰라도 단계별로 다운로드 하고 설치하고 하면 디컴파일이 되는구나?
라는 것을 보여드리는 것이 목적입니다~


그 이후 관심이 생기면 하나하나 자세히 공부를 해보시기 바랍니다~



두번째 이야기!!

OpenCV 3.2.0 CMake 빌드하기 2



Visual Studio 2017 에서 사용하기 위한 소스생성까지 하였습니다.
이제 Visual Studio 2017 에서 빌드하려고 합니다.

OpenCV.sln 을 클릭하여 빌드하면 당연히 될줄 알았는데 또다시 오류~!! ㅠㅠ

윈도우7 + Visual Studio 2017 + OpenCV 3.2.0 조합이라 그런지

이전과 다른 오류들이 나오네요.


첫번째~

포함 파일을 열 수 없습니다. 'sys/types.h': No such file or directory (소스 파일 컴파일 중 C:\_OpenCV\OpenCV_3_2_0\Source\3rdparty\zlib\compress.c)


이런 오류가 발생한다면

프로젝트 - 속성 - 구성속성 - 일반 - 대상플랫폼 8.1 ==> 10.0 으로 변경 해주세요.
Release / Debug 모두 변경 해주세요.
(가끔 Release 에서 속성 변경후 계속 에러날때 왜 안되지 하며 쓸데없이 시간 보내는 경우가 있죠~ ㅎ)
모든 프로젝트를 변경 해주세요~



두번째~
오류는 아니고 Warning 이죠.

C:\_OpenCV\OpenCV_3_2_0\Source\modules\core\include\opencv2/core/utility.hpp : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.

이런것들이 많이 나옵니다.
(대부분 주석에 있는 문자가 문제가 있는 경우죠.)
빌드에는 지장이 없으나 계속 나오면 거슬리죠.

#pragma warning(disable: 4819)

또는

속성 - C/C++ - 고급 에서 특정경고 무시하도록~

또는

해당 파일들을 유니코드 형식으로 변경후 저장해주시면 해결이 됩니다.
(파일이 한두개면 변경하면 되는데 너무 많다면 귀찮으니 두번째 방법으로~^^)



이렇게 변경하면 빌드가 정상적으로 될 것입니다~

정상적으로 빌드가 되었다면
\Build\bin\Debug or Release 폴더에

결과물들이 생성되어 있을 것입니다~



OpenCV 3.2.0 CMake 빌드하기 1



VisualStudio 2017 에 OpenCV 라이브러리 사용할수 있도록 셋팅하는 것은 다음글에 적겠습니다.

이번글은 OpenCV 소스를 다운로드 하여 VisualStudio 2017 에서 사용할수 있도록 CMake 사용하는 법을 적도록 하겠습니다.


OpenCV 를 사용할때 대부분의 사용자분들은 빌드된 라이브러리만 사용하시면 됩니다.
하지만 내부적으로 소스를 일부 수정을 해야 할 경우가 생긴다면 빌드를 해야할 경우가 발생됩니다.

CMake를 사용합니다.
공식사이트는 다음과 같습니다.

사용하시는 윈도우가 32비트면 32비트버젼으로, 64비트면 64비트 버젼으로 다운로드 하시면 됩니다.






설치후 실행하면 아래와 같이 나옵니다.








아래와 같이 소스가 있는 위치, 빌드된 결과물이 저장될 폴더를 지정해줍니다.








소스폴더는 아래와 같은 폴더들이 있는 곳입니다.





빌드폴더는 그냥 생성하시면 됩니다~





이제 Configure 버튼을 눌러주세요~ 아래와 같은 화면이 나옵니다.
여기서 Visual Studio 15 2017 Win64 를 선택해주세요.
그리고 Finish 버튼~








아마도 Windows 10 기준에서는 문제가 없을것 같고, Visual Studio2017 이전버젼을 사용해도 문제가 없을것 같습니다.

Windows 7 + VisualStudio 2017 + CMake + OpenCV 3.2.0 조합일때 문제가 될 수도 있습니다.

뭔가 문제가 생기면 Fail 이 되고 CMakeError.log 파일이 생성됩니다. (빌드폴더 \CMakeFiles)

이 파일을 보면 어떤것이 문제가 있는지 설명되어 있습니다.

 Link:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdCXX.lib" /MACHINE:X64 Debug\CMakeCXXCompilerId.obj
LINK : fatal error LNK1104: 'ucrtd.lib' 파일을 열 수 없습니다. [C:\_OpenCVTest\Out\CMakeFiles\3.8.0\CompilerIdCXX\CompilerIdCXX.vcxproj]
"C:\_OpenCVTest\Out\CMakeFiles\3.8.0\CompilerIdCXX\CompilerIdCXX.vcxproj" 프로젝트를 빌드했습니다(기본 대상). - 실패

빌드하지 못했습니다.




만약 이와 같은 에러가 발생된다면 

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\ucrt\x64
폴더에 있는 파일 네개를

C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
폴더에 복사해주세요.
패스를 잡아주셔도 될것 같고..

아예 위 폴더들이 없다면 Widnows SDK 를 다운로드 하여 설치해주세요.




빌드가 완료되면 아래와 같은 화면이 나옵니다.







이제 Generate 버튼을 눌러주세요.
Build 폴더로 가시면 Visual Studio 2017 에서 사용할 파일이 생성되어 있는것을 보실수 있을 것입니다.





이제 Visual Studio 에서 사용할 소스가 준비 되었습니다~^^



OpenCV 3.2.0 다운로드 및 환경설정





  • OpenCV 다운로드


공식 사이트 : 소스 및 바이너리를 받을수 있습니다.



아래와 같은 화면이 나올것이며 3.2.0 버젼의 Win pack / Sources 를 다운로드 합니다.

 






  • Visual Studio 2017 Community 다운로드 / 설치


개발툴
VisualStudio 2017 Community 를 사용할 예정입니다. 개인사용자에게 무료로 배포됩니다. 최신버젼이 얼마전 배포되었습니다.
사용되는 언어들이 많겠지만 테스트, 샘플 프로그램을 만들고 테스트 하기에는 MFC 가 편하지 않을까 생각됩니다.

즉, VisualStudio 2017 / C++ / MFC 기준으로 진행합니다.

VisualStudio 2017 다운로드 주소


아래와 같은 화면이 나오며 붉은색 박스로 표시된 부분을 눌러 다운로드 받습니다. (정품이며, 무료입니다.)



설치방법은 생략합니다. 다음다음~~~ 눌러서 진행하면 됩니다~~^^


 설치가 완료되었다면 실행해줍니다. 아래와 같은 화면이 나올것입니다.
 


기본적인 준비는 되었습니다.


다음글에서는 CMake 를 통한 OpenCV 빌드에 대해 적을 것입니다.


감사합니다.

OpenCV 3.2.0 시작하기~



그동안 OpenCV 사용할 일이 있어서 급하게 공부를 하다보니
이런저런 시행착오를 겪게되고

필요한 부분만 약간의 테스트를 거쳐 사용하다보니
동작을 하긴 하는데 뭔가 남는것도 없고

........................

처음부터 찬찬히 공부를 해볼까 합니다.
그동안은 2.4 버젼을 사용했었고 새롭게 공부를 하는것이니 3.2.0 버젼으로 출발할까 합니다~

1. 다운로드 / 설치 / 개발환경 설정

2. OpenCV 빌드

3. 샘플 프로그램 제작

4. 사용되는 구조체 및 각종 샘플 등등