리버싱 핵심원리 15장
Security/Reversing
15장 UPX 실행 압축된 notepad 디버깅 실행 압축 파일들의 디버깅은 많은 루프의 연속이며 어떠한 루프를 하는지 UPX로 패킹된 notepad로 알아볼 예정 (*ESI와 EDI가 동시에 세팅되면 ESI가 가르키는 버퍼에서 EDI가 가르키는 버퍼로 메모리 복사가 일어날 것이라고 예측할 수 있다. 압축 해제의 경우에는 ESI로부터 데이터를 읽어서 압축을 해제한 후 EDI에 저장하는 것.) 루프1 EDX에서 한 바이트를 읽어 EDI에 쓰는 것. EDX 레지스터가 가리키는 01001000 주소는 첫 번째 섹션(UPX0)의 시작 주소이며, 메모리에서만 존재하는 섹션이다. 루프2 본격적인 디코딩 루프(압축해제 루프)이다. ESI가 가리키는 두 번째 섹션(UPX1)의 주소에서 차례대로 값을 읽어서 적절한 연산..