-
[2021/09/15][짤막한 이야기 - 언패킹(개념)]짤막한 이야기 2021. 9. 15. 06:29728x90반응형
[2021/09/15][짤막한 이야기 - 언패킹(개념)]
"언패킹"은 패킹된 프로그램을 원본 프로그램으로 복원하는 방법이다.
이 때, 패킹은 실행코드에 적용될 수도 있고 데이터에 적용될 수도 있는데, 보통 실행코드에 적용됨을 가정한다.
패킹된 코드의 언패킹은 결국 "메모리 쓰기"를 통하여 수행되기 때문에, 실행 권한이 있는 영역에 쓰기 행위가 수행되는 경우를 언패킹으로 가정하여 패킹 여부를 판별할 수 있다.
즉, 권한과 행위를 합하여 모니터링한 후 해당 행위가 종료되는 시점을 파악하는 것이 언패킹이 완료된 코드를 획득하는 방법이다.
보통 행위(언패킹)의 종료 시점은 행위가 시행된 위치(실행 권한이 있는 영역)로의 제어권 이동이 이루어지는 시점을 의미한다.
이를 파악한다면, 핀툴로 언패킹이 완료된 원본 오브젝트(코드 혹은 데이터)를 획득하는 것은 썩 어려운 일이 아닐 것이다.
원본 오브젝트를 모두 획득하였다면, 이를 파일 형태로 재구성하면 언패킹된 프로그램을 만들 수 있다.
[관련된 짤막한 이야기 - 언패킹(필요성)[2021/09/01]]
[관련된 문서 - 핀툴 프로그래밍 기본서[제3부. 핀툴로 UPX 언패킹하기]]
#이야기 #루니프 #핀 #핀툴 #패킹 #언패킹 #UPX #패킹된코드 #원본오브젝트
[2021/09/15][Short Story - Unpacking(Concept)]
"Unpacking" is a method of restoring a packed program to an original program.
In this case, packing may be applied to either the executable code or data, and it is assumed that it is usually applied to the executable code.
Since the unpacking of the packed code is ultimately performed through "Memory Write", it is possible to determine whether or not to packed code by assuming that the write operation is performed in an area to which the execution permission is granted as unpacking.
In other words, the method of acquiring the unpacked code is to monitor permission and action and then determine when the corresponding action ends.
The endpoint of the action (unpacking) means the point at which control is transferred to the location where the action was performed (the section with execution permission).
If you understand this, it will not be very difficult to obtain the unpacked original object (code or data) with the PinTool.
If you have acquired all the original objects of the packed program, you can create an unpacked program by reconstructing them in a file format.
[Related Short Story - Unpacking(Necessity)[2021/09/01]]
[Related Documents - Basic Book for PinTool Programming[Part3. Unpacking UPX with PinTool]]
#Story #LootNiP #Pin #PinTool #Packing #Unpacking #UPX #PackedCode #OriginalObject728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2021/09/17][짤막한 이야기 - 임포트 주소 테이블(구성)] (0) 2021.09.17 [2021/09/16][짤막한 이야기 - 임포트 주소 테이블] (0) 2021.09.16 [2021/09/14][짤막한 이야기 - 최소 공통 조상(개선)] (0) 2021.09.14 [2021/09/13][짤막한 이야기 - 최소 공통 조상] (0) 2021.09.13 [2021/09/09][짤막한 이야기 - 예외] (0) 2021.09.09