완전 쉬운 nspack....이걸 써야할지 말아야할지 생각도 안하고 ..그냥 올려본다..
해당 특징이라하면 특정 어셈 명령어에 대한 지식을 알면 쉽게 이해 할수 있다.
누구나 아는 upx에서 pushad 의 어셈명령이 무엇인지 기억하는가? 모든 레지스터에 대한 값을 저장하는것이였다.
여기서는 pushfd를 쓴다. PUSHFD 는 'push flags double-word' 의 약어로, 플래그를
더블워드로 스택에 넣는다.[ 출처 : http://gnudevel.tistory.com/404]------------------------------------------------------------------------------------
출처 : http://index2014.tistory.com/126
-----------------------------------------------------------------------------
자 여기까지가 이 팩에 대한 알아야할 기본 지식이다. 이 팩에서는 pushfd, pushad를 연속으로 씀으로써 플래그값 및 레지스터 정보를 다 저장하였다가 언팩하여 jmp 할때 해당 레지스터값을 복원하여 동작한다.
nspack 확인
nspack에서 ep부분에 보이는 pushfd와 pushad 값을 확인할 수 있다.
아래 보면 popad, popfd 후에 jmp를 하는것을 알 수 있다.
참고로 보면알겠지만 그냥 ctrl+f 눌러서 popfd하면 바로 나온다;; jmp에 bp걸고 ㄱㄱ 하면 끝
이상 매우 쉬운 nsunpack에 대한 확인 및 언팩이였다....너무쉽다ㅣ
'리버싱' 카테고리의 다른 글
Servicemain으로 호출되면서 해당 service main에서 팩킹되어있을 때 (0) | 2015.06.26 |
---|---|
unpackingyoda'scrypter1.3 (1).pdf (0) | 2015.05.27 |
Exe32Pack 1.4x (Unpacking) (1) | 2014.10.30 |
RunAsInvoker 로 UAC 우회 (0) | 2014.10.23 |
Other AntiDebug tricks (0) | 2014.10.22 |