<div><span style="font-size:9pt;line-height:1.5;">간단한 패킹 프로그램을 만들어보려구 하는데 이해가 가지 않는 부분이 있어서요.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">우선 패킹하려는 프로그램을 A</span></div> <div>패킹 완료된 프로그램을 B라고 하겠습니다.</div> <div><br></div> <div>패킹 과정은 B에 적당한 더미섹션을 만들고 그 섹션 안에 A를 집어넣는 것이고</div> <div>B가 실행될 때 언패킹 과정을 거쳐서 더미섹션 안의 내용을 실행가능한 상태로 만든다. 라는 것은 이해하겠습니다.</div> <div><br></div> <div>그런데 "실행 가능한 상태"로 만드는 부분이 이해가 되지 않습니다.</div> <div>1. A의 RVA 값은 B의 더미 섹션으로 들어가면서 모두 offset이 발생하니까</div> <div>더미섹션 안에서 실행 가능하도록 하려면 RVA값에 offset을 더해줘야합니다. (맞나요?)</div> <div>만일 그렇다면 IAT 같은 헤더의 RVA는 그렇다 쳐도 실제 코드의 RVA값도 모두 바꿔줘야 할텐데,</div> <div>바이너리 코드에서 어떤게 RVA값인지 어떻게 판단하나요?</div> <div>아니면 실행가능한 상태로 바꾸는 다른 방법이 있나요?</div> <div><br></div> <div>2. RVA와 IAT값은 Table 처리말고 Packer가 해야하는 일이 뭐가 있나요?</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.