리버싱
jmp에서 상대 주소로 이동하는 식 계산법
블르샤이닝
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