HEX edit(arm) 질문좀요

홈 > 커뮤니티 > 질문 게시판
질문 게시판

HEX edit(arm) 질문좀요

6 가즈아 1 3176
안녕하세요.
열심히 배우고있는 학생입니다.

다름이아니라

훅헬퍼를 이용하여 RET,160EA8(예를든 주소입니다) , Float 형으로 100을 주면(기본수치가 12)

원하는 기능을 얻을 수 있었는데요

어셈지식이 없는 상태에서

헥스에딧으로 살펴보니
순정에서는

ldr r0, [r0, #0x3c4]
bx lr

C4 03 90 E5
1E FF 2F E1

이런 형식으로 나왔습니다.

사실 처음해본건 DHHD님이 올려주신

Float 형 헥스코드를 이용하여

원하는값을찾아서
00000043 이런식으로

00 00 00 43
1E FF 2F E1

이런식으로 그냥 리턴햇더니 되진않더군요..

여기서 신기한건

훅헬퍼를 이용하여 원하는 주소를 찾으면 160EA8 에

그냥 린엔진측에 Float 형으로 100 넣으면 알아서 그 수치가 잘 적용되서

인터셉트에도 100이라는 수치를 얻어볼 수 있었는데요.

어떻게 정확히 100이라는 수치를 리턴시키는지 신기하네요..

다시한번 린엔진의 대단함을 느꼇습니다..ㄷㄷ


지금 린엔진이 안되는 상황에서

혹시 %f , 100 이라는 효과를 내려면 

헥스에딧으로

ldr r0, [r0, #0x3c4]
bx lr

위 부분에서 #0x3c4 부분을 건드리면되는건지

아니면

ldr 명령어를 빼버리고 거기에 Float형 숫자 상수를 넣고
bx lr 리턴을 시키면되는건지 궁금합니다.

아무래도 후자 방법이 훅헬퍼기능에서도 쓰이고있지않을까
조심스럽게 예상은해봅니다만..
뇌피셜일뿐입니다..

제가 완전 방향을 잘못잡고있는지도.. 답변주신다면
정말 감사드리겠습니다.

감사합니다.
1 Comments
M LIN 2020.06.15 22:56  
Interceptor.replace 를 사용해서 'float' 형으로 타입을 정확히 지정해주면 됩니다.