바야흐로 jar도 이젠 RAT시대다.
분석 시간 지연을 위해 적용된 ALLATORIxDEMO 난독화를 풀어보자.
앞서 해당 샘플은 바이러스토탈에 2014-10-07에 최초 업로드 되었다.
jar파일은 pkzip로 압축되어 있어 생성 시간(수정 시간)은 MS-DOS date format으로 기록하며, 0x453D를 계산해보면
0x453D -> 10001010 0111101
1.100010 = 34 + 1980 = 2014
2.1001 = 9
3.11101 = 29
2014-09-29에 생성한 것으로 추정할 수 있다.
분석 대상 파일 정보 :
그럼 h.ALLATORIxDEMO만 분석하면 문자열 복호화가 가능하다!
엄청나게 간단한 연산이다. 각 클래스마다 총 2개의 키가 있어 (클래스 별로 다름) 받은 문자열의 홀짝으로 xor연산을 한다.
자 그럼 파이썬으로 포팅하자.
a = "\034\005-\037-M?\f;M)M8\037'\017$\b%M:\b/\004;\031-\037!\003/M<\005-M&\f<\004>\bh\005'\002#C" j = 4 << 4 ^ 4 << 1 m = ((0x3 ^ 0x5) << 4 ^ 3 << 2 ^ 0x1) deobf="" for i in range(len(a)): deobf += chr(int(a[i].encode('hex'), 16) ^ ((j, m), (m, j))[len(a) % 2][i % 2]) print deobf
짜잔
<Fig4. deobfuscation >