안녕하세요 여러분 시더입니다.


오늘 게시글은 오랜만에 리버싱 예제좀 풀어 봤습니다.


네이버에서 리버싱과 역공학 등등으로 검색하다보니 코드엔진 이라는 사이트가 나오더라구요.


그래서 이것저것 눌러보니 안드로이드용 예제가 4문제 있네요.


4문제 다 키값을 구해서 저기 싸이트에 자기 닉넴이랑 입력하면 등록 됩니다.


답은공개하면 안되는것 같고 (다 영어임..이정도는 별 관계 없겟지.) 그리고 단순하게 classes.dex 파일을 열어서


소스를 본다고 키값을 얻을수 없습니다. 암호화가 되어있어요.즉 어플을 완벽하게 복원..? 개조..?하여간 고쳐서 동작 


시키면 키값 딱! 나오는데.. 그걸 입력하면 되는겁니다.


저는 일단 3문제 풀었습니다. 4번째 문제도 다푼듯 한데.. 키가.. 흑.. 키가.. 해쉬값이라니.. -_-  문자열로 복원이 안되


고 힌트인 영어문장은 찾았으나.. 이건 퀴즈문제가 적혀잇는것 같고  그 답을 적어야 하는것 같네요. 혹시 이문제 풀어


보신분 그거 힌트가 맞는지좀 답변해주세요. 그럼 인증샷을 포함 시키겠습니다.



'리버싱' 카테고리의 다른 글

C# 디컴파일 예제2  (0) 2014.08.12
안드로이드 디컴파일 예제 #4  (0) 2013.10.08
안드로이드 디컴파일 예제 #3  (0) 2013.10.08
C# 디컴파일 예제1  (0) 2013.09.01
안드로이드 디컴파일 예제 #2  (0) 2013.08.18
Posted by 시더
,

안녕하세요 시더입니다.


이번에 해야할 예제는 간단합니다. 쉬워요. 아니 어려운걸 만들려고 해도 아이디어가 안떠오르네요.


화면 중앙에 "크랙미" 라는 단어가 출력되어 있을겁니다. 이것은 5회 중첩되서 출력시키면 됩니다.


즉.. "크랙미크랙미크랙미크랙미크랙미" 이렇게 말이죠.  


단순하게 변수값 저장 부위를 찾아서 복붙 해도 되긴하겠지만 제한조건을 달아봅니다.


-------------------------------------------------


com.example.adnroid_dec_test3.apk


제한조건

1.화면 중앙에 크랙미 5회 중첩 출력

2.단순 변수값 저장 부위 복사가 아닌 for문을 활용하여 5회 반복시킬것


-----------------------------------------------


가끔씩 올리는 예제.. 풀어보면 재밌습니다. 아직까진 어려운걸 낼 아이디어가 안떠올라서요 흑..

'리버싱' 카테고리의 다른 글

코드엔진 스마트 앱 예제  (0) 2014.01.09
안드로이드 디컴파일 예제 #4  (0) 2013.10.08
C# 디컴파일 예제1  (0) 2013.09.01
안드로이드 디컴파일 예제 #2  (0) 2013.08.18
안드로이드 디컴파일 예제 #1  (0) 2013.08.12
Posted by 시더
,

안녕하세요 시더입니다.


뜬끈없이 C# 디컴파일 예제를 올리게 됬는데요. 사실 저는 C#은 책도 없고 배운적도 없어요.


그저 프로그래밍 기본기로 작성했는데.. 간단한 예제는 만들수 있네요. 아 잡담은 이쯤하고 왜 뜬금없이 C#이냐하면


이게 그러니까 안드로이드에 Native로 올라가는 어플이 많습니다(후.. JNI ㅜ.ㅜ). 그런 어플의 경우 앞서 배운 예제를


아무리 잘해도 소용이 없죠. 


 소스는 전부 이쪽에 있으니까요. 직접 적인 언급은 안하겠지만 3D관련 어플은 거의 이방식을 사용한다 생각합니다. 


속도면에서 눈에 보이게 차이가 나거든요. 



---------------------------------------------------------------------------------------------------------


ConsoleApplication1.exe


화면에 a라고뜨는 콘솔 응용프로그램입니다. 언어는 C#이구요


이걸 화면상에 b로 출력되게 하면 됩니다.


네 쉽죠? 그런데 기존에 안드로이드에서 쓰던 툴과 방식으로 하면 안됩니다.


힌트 주자면 IL 레벨까지 내려갔다 와야되요.


---------------------------------------------------------------------------------------------------------

Posted by 시더
,

안녕하세요 시더입니다. 


이번에도 쉬운 예제를 준비 해놨습니다.  일단 디컴이라는게 안드로이드는 자바 언어를 사용하다보니 거의 99% 정도


소스를 볼 수 있답니다. 음.. 복원은 좀 노가다 작업이 되겠지만.. 주요 함수정도는 쉽게 건져 낼수 있죠. 그러다보니


어플 만드는 입장에선 방지책을 사용하고 있는데 JNI처럼 네이트브를 쓰거나, 변수와 함수명 인자등을 abc로 만


는 난독화, 서버연동 등등.. 뭐 각자 장단점은 있으나 결론은 뚤린다는 거죠. 서버연동은 좀 다른방식을 써야겠지만..


찾아보면 안드로이드 디컴방지에 관한 논문도 몇개 있더군요.  그럼 본론으로 들어가서 이번에 해볼것은.. 


-------------------------------------------------------------------------------------------------------


com.example.adnroid_dec_test2.apk


이번 예제는 일정확률로 꽝과 점수가 화면 중앙에 나타납니다.


난이도 2/10 (이것도 쉬운거임 정말..)


조건1. 이것을 100% 확률로 점수가 나오게 할것

조건2. 점수가 5점이상 나오게 할것 

조건3. 변수값이나 xml 등은 건들지 말고 디컴을 통한 달빅언어 레벨에서 고칠것


역시 너무 쉽습니다.  보안 기능도 전혀 없고 소스도 간단하지만 자바언어는 알아야지 고치겠죠.

----------------------------------------------------------------------------------------------------------------------------


'리버싱' 카테고리의 다른 글

코드엔진 스마트 앱 예제  (0) 2014.01.09
안드로이드 디컴파일 예제 #4  (0) 2013.10.08
안드로이드 디컴파일 예제 #3  (0) 2013.10.08
C# 디컴파일 예제1  (0) 2013.09.01
안드로이드 디컴파일 예제 #1  (0) 2013.08.12
Posted by 시더
,

안녕하세요 시더입니다.


이번에는 그동안 갈고 닦은 디컴파일 기술을 정리좀 하고자 합니다.


제가 올려드리는 예제 APK은 제가 직접 만든것이니 마음것 뜯고 고쳐도 됩니다. 


단, 퍼가실때는 출처는 적어주셔야 겠죠? 많이 서운해 합니다 -_-;;


디컴해답은 따로 공개하지는 않고 제한된 인원만 공개나 뭐 그런쪽으로 생각중입니다.


따로 작업툴 같은것은 언급하지 않겠습니다. 실제로 종류도 다양하게 있으니 편한거 찾아서 작업하시면 됩니다.



-----------------------------------------------------------------------

com.example.adnroid_dec_test1-1.apk


난이도 1/10  (제일 쉬움)


실행시키면 화면 중앙에 숫자(70)가 나오는데 이것을 숫자(99)로 변경 시켜야 합니다.


조건1 변수값은 변경하지 않는다.

조건2 화면 중앙에 70이 아닌 99가 출력 되야 한다.



디컴파일을 한번이라도 해보신 분이라면 그냥 풀 수 있는 난이도 입니다. 

-----------------------------------------------------------

'리버싱' 카테고리의 다른 글

코드엔진 스마트 앱 예제  (0) 2014.01.09
안드로이드 디컴파일 예제 #4  (0) 2013.10.08
안드로이드 디컴파일 예제 #3  (0) 2013.10.08
C# 디컴파일 예제1  (0) 2013.09.01
안드로이드 디컴파일 예제 #2  (0) 2013.08.18
Posted by 시더
,