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. 사용되는 구조체 및 각종 샘플 등등

Windows SDK 8.1 다운로드


윈도우즈 SDK 8.1 다운로드 경로 입니다.

https://developer.microsoft.com/ko-kr/windows/downloads/windows-8-1-sdk

필요하신 분들은 다운로드 후 설치 하여 사용하시기 바랍니다.




크롬 시크릿모드~

아시는 분들은 아시겠지만~
모르시는 분들도 있으니~

웹서핑하다보면 알게모르게 이런저런 흔적들이 남게되겠죠~

이럴때 사용하시면 됩니다~

크롬을 실행시킨 후 단축키로는
컨트롤 + 쉬프트 + N 을 눌러주시면 됩니다.
메뉴로 가서 실행해도 됩니다.

아래 이미지를 참고하시면 됩니다~



그러면 아래와 같은 창이 뜹니다~


자세한 설명은 이 창에 나옵니다~





세븐나이츠 초월 장비 분리


세븐나이츠 1000일 업데이트 되면서 장비분리 기능이 생겼습니다.

넷마블이 왠일로 아무런 댓가없이 장비분리를 해주세요~ ㅋㅋ 왠일일까요?

일단 루디의방패로 테스트를 해봤습니다.

루비, 골드, 토파즈 소모없이 되는지~~





정말로 아무런 댓가없이 분리가 됩니다~

설마 아무런 통보없이 차감이 되는걸까요? ㅋ

NOX 설정 방법


녹스(NOX) 설정 방법 입니다.


녹스를 설치하셨다면 아래와 같은 아이콘이 바탕화면에 생겼을 것입니다.
실행 해주세요.


실행하면 아래와 같은 화면이 나옵니다.
아래 붉은색 박스로 표시된 "시작" 을 눌러주세요.
(최초 설치후 멀티 앱플레이어에서 "시작" 을 꼭 실행 해주셔야 합니다.)



멀티구동을 원하시는 분은 아래 붉은색 박스로 표시된 부분을 눌러서 Nox 로 변경해주시고
"앱플레이어 추가" 를 눌러주세요.
(앱플레이어 추가할때는 필요한 앱을 미리 설치를 해주시고 진행하세요.)
(초기 앱플레이어를 선택하시면 녹스최초설치 상태로 생성이 됩니다.)



녹스 실행후 우측상단에 있는 환경설정 아이콘을 누르면 아래와 같은 화면이 나옵니다.

아래 붉은색 박스로 되어 있는 부분은 동일하게 설정해주시기 바랍니다.
다른 값으로 설정시 정상 동작이 안됩니다.
현재는 OpenGL 모드만 지원합니다.

성능 / CPU / 메모리는 원하시는 옵션으로 설정하시면 됩니다.





[DMacroLite] DMacroLite Version 1.0



[DMacroLite] DMacroLite Version 1.0  DMacroLite 
2016.04.12. 15:09  수정  삭제

번역하기 전용뷰어 보기


무료사이트 : http://dmacro.dothome.co.kr/

DMacoLite 는 화면인식 범용 매크로 입니다.
사용하시는 본인이 원하는 용도로 사용하시면 됩니다.

절대 특정 게임 전용 매크로가 아님을 미리 알려드립니다.






DMacroLite Version 1.1 에서 추가되는 기능은 아래와 같습니다.
아직 배포전 테스트 하고 영상을 저장한것이라 Version 1.0 으로 표시됩니다~^^

1. MEmu(미뮤) 해상도 자동 설정.
2. 모든 윈도우 지원. (Custom 윈도우 기능)


자세한 내용은 아래 설명 및 동영상 참고해주세요.



1. MEmu 해상도 자동 설정. 
(기존에는 환경설정에서 직접 설정을 해주셔야 했습니다.)
녹스는 수동설정 하셔야 합니다.



2. Custom 윈도우 지원. 
(블루스택, 윈드로이, 미뮤, 녹스 이외에 윈도우의 어떤 프로그램도 사용 가능합니다.)


감사합니다.




[배포] DMacroLite Version 1.0 정식버젼

무료사이트 : http://dmacro.dothome.co.kr/

DMacro 프로그램 중에서
DMacroLite 는 사용에 전혀 제약이 없는 100% 무료  화면 인식 범용 매크로 프로그램 입니다.

DMacroLite 사용 방법 동영상 입니다.
최대한 사용하기 쉽고, 직관적으로 이해 될수 있도록 개발했습니다.^^
글로 보는것보다 직접 영상으로 보는것이 제일 쉬울것 같아서 동영상으로 올립니다.
동영상의 방법을 이용하면, 모든 게임의 매크로를 직접 만드실 수 있습니다.
화면 인식 범용 매크로 이기 때문에 상세하게 만들 수는 없지만
특정 위치를 마구 눌러대는 매크로 보다는 훨 편하실 것입니다.

블루스택, 윈드로이, 녹스, 미뮤 모두 사용 가능합니다.
또한 VM 상태를 체크하여 자동으로 VM을 재시작 하는 기능도 있습니다.



로스트킹덤 매크로, 레이븐 매크로, 세븐나이츠 매크로, 모두의마블 매크로, 히트 매크로, 뮤오리진 매크로, 크리스탈 하츠 매크로, 클래시로얄 매크로, 클래시오브클랜 매크로 클래시오브킹즈 매크로 등등
직접 만들어서 사용해보세요~^^
이외에도 VM에서 구동되는 모든 프로그램에 대해 사용할 수 있습니다~

시간날때 버그 수정 및 기능 개선후 배포 하도록 하겠습니다.

[ DMacroLite 간략 메뉴얼 ]

사용되는 키보드는 S, E 와 마우스 입니다.

모두 6단계로 진행이 되며, 화면인식 과 입력만 반복하여 사용하시면 됩니다.

1단계 : 사용할 VM을 선택합니다. (블루스택, 윈드로이, 녹스, 미뮤 등)

2단계 : 매크로의 이름을 정합니다. ==> STEP 1

3단계 : VM에서 인식할 화면을 선택합니다. ==> STEP 2 의 화면선택을 누른후 저장할 화면의 왼쪽위로 마우스커서를 이동후 S, 우측아래 이동후 E

4단계 : 화면인식할때 해당화면의 좌표값이 자동으로 설정된다. 클릭할 위치가 다를경우 ==> STEP 3 클릭좌표 버튼을 누른후 마우스커서 이동후 S

5단계 : 입력버튼을 눌러 입력 합니다.

정상동작하는지 "시작" 버튼을 눌러서 해당화면 인식 및 클릭이 되는지 확인 해봅시다~~~

이제 하나의 화면 처리가 완료되었으며, 3단계 와 5단계만 반복하면 됩니다.

모두 완료되었으면 저장하기 버튼을 눌러 저장합니다.

프로그램 실행후 옵션 --> 사용설명서 버튼을 누르면 상세 설명을 보실수 있습니다.

[개발 10강] DMacroLite 1.0


녹스 추가 완료 하였고~
로스트킹덤으로 테스트 하려고 하니 녹스는 로스트킹덤 설치에 문제가 있더군요~

작년부터 녹스사용을 꺼려왔었는데 결정적인 이유가 불안정성과 이와 같은 신작게임 설치 문제점 때문입니다.
핫한 게임이 출시될때 빠르게 DMacro 개발이 되어야 하는데
게임 출시 될때 마다 해당 게임은 지원하지 않는다고 나오고 있죠. 히트때도 그랬고.. ㅠㅠ

일단 녹스는 추가 완료 하였고, 로스트킹덤이 가능한 미뮤를 추가 적용하고 있습니다.
기본기능은 거의 완료 되었고

DMacroLite 를 이용하여 로스트킹덤 동작이 되는 영상을 조만간 공개 하도록 하겠습니다.

이후 Version 1.0 을 배포하도록 하겠습니다.

블루스택2는 블루스택1 대비 장점이 하나도 없어 보여 지원할 계획은 없습니다. ㅎ

특정 게임용 매크로가 아닌 VM을 이용한 범용 화면 인식 매크로 인데 설마 이것도 문제삼진 않겠죠? ㅎㅎ

[개발 6강] 사용설명서 및 테스트버젼 배포


그동안 애먹이던 메모리 버그를 잡고 배포에 포함될 샘플을 제작하고 있습니다.
샘플완료후 배포하도록 하겠습니다.^^





감사합니다.