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 |