posted by 블르샤이닝 2015. 10. 2. 11:55
728x90

이번에 후배에게 알게된 점프 이동 식 주소 계산법. (으 완전 예상못한 방법이여서 정리차 블로그에 올림)


코드는 아래와 같다. E9 456CFFFF 로 점프하게 되어있다. 하지만 올리로 보게되면 

JMP 00401000 이다. 주소 복호화 및 계산식없다. 이 코드자체에서 상대주소로 뛰게 되어있다.


카오스.....그리고 질문


계산식 : 


0040A3B6  - E9 456CFFFF     JMP     00401000

에서 456cffff을 바이너리로 calc에서 계산 후 해당 값이 마이너스로 표기 되었기 때문에 보수를 취해 양수로 바꾼다.

456CFFFF를 바이너리로 바꾼값 (계산할때는 FF FF6C45)

11111111111111110110110001000101

보수를 한 후 양수는 아래와 같은 바이너리로 바뀌고

00000000000000001001001110111010


해당 값을 16진수로 바꾸면 93bb가 된다. 


그다음 0040a3b6에서 진행되어 다음 바이트를 하게 되면 

40a3bb가 그 다음 주소이고 위에 구한 93bb만큼 빼면


401000 즉 oep가 나오게 된다. 

728x90

'리버싱' 카테고리의 다른 글

ASPACK UNPACK  (0) 2015.10.15
난독화 된 IAT 복원  (0) 2015.10.02
안티 리버싱 기법들  (0) 2015.09.10
PC Guard 5.07 (Unpacking)  (0) 2015.08.27
themida unpack....  (0) 2015.07.29