본문 바로가기

반응형

REVERSE ENGINEERING

[Reversing] Ollydbg를 이용한 UPX 패킹과 언패킹 ※ 패킹이란? PE 파일 전문 압축기. 파일 크기를 줄이고 내부 코드와 리소스를 감추기 위한 목적으로 사용 됩니다. 실행 압축 방식으로 파일 내부에 압축해제 코드를 포함하고 있기 때문에 실행되는 순간에 메모리에서 압축을 해제하여 바로 실행할 수 있습니다. * 다음은 Win 7 64 bit, Ollydbg 2.00, 2.01 버전에서 진행 하였습니다. UPX 패킹을 하는 방법은 간단합니다. - upx.sourceforge.net 에서 UPX 툴을 다운 받습니다. - upx의 기본 사용법입니다. 패킹을 하려면 upx –o [패킹 후 파일이름] [원본 파일이름]을 해주면 됩니다. 언패킹은 upx -d [언패킹 할 파일이름]을 해주면 됩니다. - 예제 파일로 notepad를 패킹해보았습니다. 파일 사이즈가 줄어.. 더보기
kisa 온라인 해킹방어 훈련장 Reversing - Password를 찾아라! Season2 Password를 찾아라 시즌2! Ollydbg로 열어보면 경고창이 뜨고 스트링 검색을 해보아도 아무것도 뜨지않는다. 패킹이 되어 있나보다. PEID로 확인 해보면 UPX 패킹이 되어 있는 것을 알 수 있다. 툴을 이용해서 간단히 언패킹. 언패킹이 된 것을 확인할 수 있다. 이제 스트링들이 검색이 되는 것을 확인할 수 있다. Season 1을 풀때와 같은 방식으로 진행했다. 이 함수에서 패스워드를 입력받는다. 9자리라고 했으므로 9자리를 꽉꽉 채워줬다. Season 1 과는 다르게 여기서 한자리 씩 XOR을 해준다. 어떤 값과 XOR을 하는지 주소를 찾아 가보니 'XORENCODE' 라는 문자열과 XOR을 해준다.XOR을 끝내면 XOR 되어 있는 비밀번호와 대조하여 맞는지 틀린지 결정한다. 파이썬 스크립.. 더보기
kisa 온라인 해킹방어 훈련장 Reversing - Password를 찾아라! Season 1 리버싱 문제 중에 제일 많이 등장하는 패스워드 인증 문제 입니다. 패스워드를 입력받으면 그 값을 프로그램 자체에서 키값과 비교하여 참인지 거짓인지 구별하는 것 같습니다. 틀렸다, 맞았다를 표시해주는 메시지 윗부분의 함수들에 브레이크 포인트를 걸어서 어디서 비교하는지 찾아 보았습니다. 비교하는 함수 내부를 들어가면 첫 줄 부터 입력한 값과 키 값을 비교합니다. 키 값을 인증해주면 끝. 더보기
kisa 온라인 해킹방어 훈련장 Mobile - apk 파일 분석 처음해보는 apk 파일 분석이다! 디컴파일 하는 방법은 웹에서 쉽게 찾을 수 있다. 열자마자 aes, des 암호 클래스가 나오고 bank 클래스에는 암호화 되있는듯한 헥스 값이 떡하니 있다. 코드를 정확히 분석 안해봐도 대충 감이온다. aes, des 클래스에는 대놓고 key 값도 있다. key 값은 aes, des 둘 다 똑같이 4W350M3!4W350M3! 이다. 주어진 enc 값과 key 값을 이용해 AES DES 순으로 복호화를 했다. DES 복호화에서는 key 값을 다 넣을 수가 없다. key 값이 똑같은 문자열이 두번 반복된 형태이므로 반 잘라서 집어넣으니 된다. DES 키 값을 반으로 쪼개주는 거랑 관련 있는듯한 부분이다. 이 부분은 DES 클래스에만 있고 AES 클래스에는 없다. 자세히 .. 더보기

반응형