Packing
프로그램을 보호하는 방법중 하나입니다. 실행파일을 암호화, 압축을 하는 방법을 칭합니다.
압축후 암호화를 할 때 다른 섹션을 만들어 그 곳에 복호화 알고리즘을 저장하며, 실행 시 암호화된 데이터를 복호화 후 실행합니다.
Themida & Winlicence
- 현존하는 가장 강력한 패커중 하나입니다. anti VM, anti Dump, anti Debug, EP 섞기, 리소스 암호화등 수많은 기능들을 제공하며 더미자 제작사에서는 라이센스 관리기능을 추가한 윈라이센스 또한 존재하고 있습니다.
수많은 상용프로그램들에 사용되고 있으며 카카오톡과 같은 프로그램또한 더미다 패커를 사용합니다.
UPX
- 가벼우며 포맷을 다양하게 지원하는동시에 프리웨어입니다.
패킹시 upx0, upx1 섹션이 생성되고 upx0에는 섹션및 기타 정보초기화 관련 코드가 존재하며 upx1에는 복호화 알고리즘이 존재합니다, 많이 쓰이는 패커 중 하나입니다.
upx 수동언패킹https://imoracle.tistory.com/43
ASProtect
- AsPack 이라는회사에서 만든 상용 프로텍터이며 압축률은 좋지 못하나 암호화는 괜찮습니다, Stolen Bytes 기법이 최초로 구현된 패커이며, 상용프로그램입니다.
StolenByte 란?
https://imoracle.tistory.com/entry/Reversing-CodeEngn-Basic-RCE-L09
AsPack
- 빠른 복호화 루틴으로인해 높은 성능을 내며, 32비트 window프로그램에 대해 70%이상의 압축효율을 보여줍니다.
UPX와 유사하지만 선호도는 낮습니다.
AsPack 수동언패킹
https://imoracle.tistory.com/34
Splash Image
만든 AntiCheat.dll 이 로드될때 스플래쉬 이미지가 뜨도록 만들었습니다.
게임실행전 화면의 중앙, 우측하단, 우측상단등의 스플래쉬 이미지와 로딩창이 같이 나오며,
그 글쓴이의 경우 그럴듯하게 보이기위해 넣어보았습니다.
기능 On / OFF
만든 기능들을 간단하게 켜고 끌 수 있도록 만들었습니다.
쓰기 싫은 기능이 있다면 0으로 바꿔줌으로써 동작하지 않게 설정 가능합니다.
DLL이 프로세스에 어태치되면 비교해서 함수를 실행합니다.
타고 들어가면 CreateThread를 이용해 쓰레드로 돌려주는 모습입니다.
마치며
소개한 안티리버싱 기법외에도 다양한 기법들이 존재합니다.
더욱 강력해지려면 커널모드에서 구현하면 되겠네요
널리 알려진 안티리버싱 기법으로 미흡한 나만의 안티치트툴을 제작해보았습니다.
'Reverse Engineering > GAMEHACK' 카테고리의 다른 글
[Anti - Reversing] 보안솔루션 직접 제작하기 - 3 - (0) | 2024.07.06 |
---|---|
[Anti - Reversing] 보안솔루션 직접 제작하기 - 2 - (0) | 2024.07.05 |
[Anti - Reversing] 보안솔루션 직접 제작하기 - 1 - (0) | 2024.07.04 |
[Game] 지뢰찾기 월핵 제작 - 2 - (1) | 2024.07.04 |
[Game] 지뢰찾기 월핵 제작 - 1 - (0) | 2024.07.04 |