BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
데이터 변환 알고리즘 분석 패턴
보안 프로그램이나 악성코드는 중요한 값을 평문으로 두지 않는 경우가 많다. 숨기거나 난독화하려고 여러 변환을 거치는데, 입문 단계에서 가장 자주 마주치는 패턴이 XOR이다.
1. XOR의 특성
XOR는 단순하지만 분석할 때 매우 자주 나온다. 핵심 성질은 아래 식으로 정리된다.
$$
(A \oplus B) \oplus B = A
$$
값 A에 키 B를 XOR한 뒤 다시 B를 XOR하면 원래 값으로 돌아온다. 그래서 암호화와 복호화 로직이 사실상 같다. 구현이 간단하고 빨라서 가벼운 난독화에 자주 쓰인다.
2. 분석 패턴
디컴파일된 코드에서 아래 패턴이 같이 보이면 데이터 변환 루틴일 가능성이 높다.
- 반복문: 배열이나 버퍼를 순회한다.
- 매직 넘버:
0x5A,0xFF같은 고정 상수가 보인다. - XOR 연산: 루프 안에서 데이터와 상수를
^로 연산한다.
// 전형적인 XOR 복호화 루틴
byte *data = get_data();
for (int i = 0; i < len; i++) {
data[i] = data[i] ^ 0x5A; // 0x5A가 Key 역할을 수행
}
3. 대응 방법
키와 알고리즘을 파악했다면, 같은 로직을 그대로 재현해서 데이터를 복구할 수 있다. 손으로 계산하기보다 간단한 스크립트로 자동화하는 편이 보통 더 빠르다.
엔트로피(Entropy) 분석
평문인지, 압축 데이터인지, 암호화 데이터인지 가늠할 때는 섀넌 엔트로피를 같이 본다.
일반 텍스트는 엔트로피가 낮고, 암호화된 데이터는 무작위성이 높아서 수치가 더 높다.binwalk -E같은 도구로 급격히 높아지는 구간을 찾으면 숨겨진 데이터 위치를 짐작하는 데 도움이 된다.

