[ 1탄 ] JEB로 tigerconnect.apk 분석
cryptosecurity.tistory.com/13?category=841778
[ Reversing ] JEB로 tigerconnect.apk 분석
1. JEB 실행하기 1) JEB, APK 설치 2) JAVA 설치 3) JEB 실행 4) 파일 - 열기 - 앱 선택 5) Project Explore에서 앱 더블클릭 -> bytecode 더블클릭 6) classese.dex 파일 보여줌 2. JEB로 apk 분석 4) Q..
cryptosecurity.tistory.com
[ tigerconnect.apk의 decrypt 구조화 ]

JEB 분석을 통해 찾은 tigerconnect.apk의 decrypt 구조화를 이용해서 데이터베이스를 복호화 해보자.
1. DB 복호화 소스코드 구현
-> 파이썬으로 AuthToken 구하기
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
from hashlib import pbkdf2_hmac
from Crypto.Cipher import AES
import base64
def decrypt(key, enc):
cipher = AES.new(key, AES.MODE_ECB)
dec = cipher.decrypt(enc)
result = dec[:-1*dec[-1]]
return result
salt = 'jQx+pvuo3TJ7aN9zPJnGPVTfIfrDG9uEkIHEVOZ6ez8='
ttkey01 = 'oum53H3VwmQoECodZfek7ckgo2qRrtta'
ttkey02 = 'USDNyIf90wXg4ifLTVFb//qRobxlJjqOaAPAn/HHxBV2AmCeLiBi2R4+RZvZjhzaHhFa+HQDdVnw z+/gzSU9Ug=='
salt2 = base64.b64decode(salt)
ttkey01_byte = ttkey01.encode()
ttkey02_decode = base64.b64decode(ttkey02)
secretkey = pbkdf2_hmac('sha1', password=ttkey01_byte, salt=salt2, iterations=1000, dklen=32)
print('secretkey :', base64.b64encode(secretkey).decode('utf-8'))
restsecret = decrypt(secretkey, ttkey02_decode)
print('restsecret :', restsecret)
authtoken = ttkey01_byte + bytes(b':') + restsecret
print('authtoken :', authtoken)
|
cs |
[ 실행 결과 ]

2. DB Browser for SQLCipher
2.1 ) DB Brower for SQLCipher.exe 실행

2.2 ) 파일 - 데이터베이스 열기 - ttandroid.db

암호화가 걸려있는 것을 볼 수 있다.
2.3) 앞에서 구했던 AuthToken 값 입력
AuthToken = oum53H3VwmQoECodZfek7ckgo2qRrtta:UNql9sXWri3hSSt95vfhXbgoQNFaKLiMMGfcBx1p4YszBhCj


tigerconnect 데이터베이스 복호화 성공
[ Github 소스코드 파일 ]
'Digital Forensic > Reversing' 카테고리의 다른 글
| [ Reversing ] JEB로 tigerconnect.apk 분석 (0) | 2020.09.12 |
|---|---|
| [ Reversing ] 리버싱이란? (0) | 2020.09.10 |




























