
이 문제는 Easy Keygen.exe와 ReadMe.txt가 주어진다. ReadMe를 확인해보니 Serial이 5B134977135E7D13가 되는 Name 값을 찾아야 한다. 프로그램을 실행시켜서 Name에 임의의 값을 넣어보았다. correct/wrong 판별이 되기 전 비교하는 부분을 확인해보면 입력한 abcde의 Serial은 7142537445 임을 알 수 있다. 입력한 Name 값으로 Serial을 생성하는 로직을 찾아가 보았다. 입력한 Name의 첫번째 값 a의 hex와 10을 XOR 연산하는 것을 확인할 수 있다. 두번째 값 b는 20과 XOR 연산하는 것을 확인할 수 있다. 로직을 계속 확인해 나가면 Name 값을 10, 20, 30, 10, 20, 30 ... 반복하며 XOR 연산으로..
CODEGATE 2013 - Binary 100 주어진 exe 파일을 실행하면 doorlock이 뜨고, 임의의 수를 입력하면 "sorry, try again" 이라는 메시지 박스가 뜬다. 해당 exe를 .Net Reflector로 디컴파일하여 분석하다보면, 아래와 같은 코드를 볼 수 있다. data.length가 0x10 이면, AES 암호화를 한 후 XOR 연산하여 this.lowkey와 비교를 한다. data.length에 맞게 16(0x10)자리 숫자를 입력하면 조건문 두개를 만날 수 있는데 입력한 값이 조건에 만족한다면 this.c를 XOR 연산하고 AES Decrypt한 값을 메시지 박스에 띄워주는게 이것이 키값이 된다. 하지만, 조건에 만족하지 않으면 this.d를 XOR 연산하고 AES De..
[CodeEngn] SmartApp 03 SmartApp03 도 마찬가지로 서명을 추가하고, apk를 설치해준다. app을 실행하면 랜덤값으로 남은 계단이 주어지고, 버튼을 클릭하면 현재위치가 1씩 증가한다. 아무래도 주어진 계단수만큼 버튼을 클릭해야 키 값이 주어지는 것 같다. AndroidKiller를 이용하여 apk를 분석해보기로 했다. package com.namdaehyeon.findkey3; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.view.View.OnCli..
[CodeEngn] SmartApp 02 apk를 설치하면 서명이 되어있지 않아 설치할 수 없다고 뜬다. apksign을 이용하여 apk에 서명을 추가해주었다. 서명을 추가한 apk를 다시 설치하면 정상적으로 설치가 된다. 설치된 app을 실행하면 key값을 볼 수 있었던 SmartApp 01 과 달리 FindKey :) 라는 문구만 볼 수 있다. androidKiller로 apk를 디컴파일하여 소스코드를 보았다. MainActivity.class의 소스코드를 보니, 현재 시각이 2013-11-02-12:35:03 이고 볼륨이 53일 때, keyString()을 생성하여 출력해주는 것을 볼 수 있었다. package com.namdaehyeon.findkey2; import android.annotati..
[CodeEngn] SmartApp 01 어떤 앱인지 보기 위해 주어진 apk를 설치하려고 하니, AndroidMainfest.xml이 없다고 한다. apk 파일의 확장자를 zip으로 변경하여 구성파일을 보니, xml dex arsc 파일의 이름이 이상하게 수정되어있다. apk 설치를 위해 원래의 이름으로 수정해주었다. AndroidManlfests.xml -> AndroidManifest.xml class.dex -> classes.dex resource.arsc -> resources.arsc 리패키징한 apk 파일은 재서명이 필요하여, signapk를 이용하여 서명을 추가하였다. 서명을 마친 apk 파일을 기기에 설치하면 정상적으로 설치되는 것을 볼 수 있다. 설치된 app을 실행하면 key값을 얻..
[2016 SECCON] Rock Paper Scissors 이 문제에서 주어진 apk는 단순히 가위바위보를 하는 앱이었다. MainActivity 코드를 보면 MainActivity.class package com.example.seccon2015.rock_paper_scissors; import android.widget.TextView; class MainActivity$1 implements Runnable { MainActivity$1(MainActivity paramMainActivity) {} public void run() { TextView localTextView = (TextView)this.this$0.findViewById(2131492946); MainActivity localM..
[2016 HolyShield] SoundMeter 주어진 APK 파일을 설치하여 실행하면 로그인 화면이 나온다. APK의 Smali 코드 중 로그인 부분의 분기문을 수정하여 아이디 비밀번호를 틀려도 로그인이 되도록 바꿔보았다. :cond_2 if-eq v0, v5, :cond_3 new-instance v0, Landroid/content/Intent; iget-object v1, p0, Lme/daei/soundmeter/d;->a:Lme/daei/soundmeter/MainActivity; const-class v2, Lme/daei/soundmeter/SecondActivity; invoke-direct {v0, v1, v2}, Landroid/content/Intent;->(Landroid/co..
- Total
- Today
- Yesterday