안드로이드 리버싱 2

[MOBISEC] Pincode (10)

Pincode (10) MainActivity 메인엑티비티를 분석해보면 Pinchecker.checkPin() 매소드에서 Pin번호를 검증한다. 올바른 Pincode를 입력할 경우 검증 과정에서 사용되는 매소드들이 True가 계속 반환되며 화살표 순으로 진행된다. 그리고 최종적으로 서버와의 통신을 통해 Flag를 반환받을 수 있다. 핵심 로직은 Pincheck.checkPin() 매소드를 분석해보자. PinChecker.checkPin() PinChecker클래스의 checkPin 매소들를 분석해보면 Pin은 6글자이고 MD5로 다이제스트한 값이 "d04988522ddfed3133cc24fb6924eae9"과 동일해야한다는 것을 알 수 있다. 6글자의 숫자이기 때문에 브루트포스로 충분히 찾아낼 수 있겠다..

[MOBISEC] BabyRev (10)

MOBISEC babyrev (10) Jadx-gui를 이용해서 APK파일을 디스어셈블한다. MainActivity 분석 다음과 같은 코드를 사용하면 ID를 지정하고 리소스에 매핑된 문자열을 불러올 수 있다. 아래 필드를 따라가보면 ID넘버가 존재하며 이 ID넘버와 매핑되는 값을 strings.xml에서 찾는다. 개발에 대한 자세한 내용은 아래에 정리한 부록1을 참고한다. final EditText flagWidget = (EditText) findViewById(C0055R.C0057id.flag); final TextView resultWidget = (TextView) findViewById(C0055R.C0057id.result); 아래의 조건문에 맞는 문자열이 이 문제의 Flag값이라는 것을 알..