바야흐로 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연산을 한다.
자 그럼 파이썬으로 포팅하자.
1 2 3 4 5 6 7 8 9 | 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 >