PC리버싱/(구)기초

초보자를위한 리버싱 간단요약1

Lamed_Dhhd 2020. 3. 14. 11:48
반응형

https://dhhd-goldmilk777.tistory.com/15
이글을먼저보고오시는걸 추천드립니다 

 

생초보자를 위한 리버싱 기초잡이1

이자료은 연구용이고 악의적인의도로 사용할시 책임은 사용자에게 있습니다 1 리버싱의 관한 간단한 비유 리버싱을 간단하게비유해보죠 샤프를 예시로해보죠 샤프를분해하면 샤프앞에 샤프심나오게하는 구멍 스프..

dhhd-goldmilk777.tistory.com

이글을 보셨다면 이제 대충 리버싱이

저런툴을가지고 프로그램의 동작원리를 아는것구나

라고생각했다면 네 잘이해하셨습니다

리버싱을할려면 조금이라도 어셈블리어를 알아야합니다

이걸 간단하게 요약해서하죠

주의(이건 요약을꽤많이해서한걸로 다른글들을참고해서보는걸 추천드립니다)

일단적으로 레지스터등은 좀어려울것니

명령어부터간단한것 알려주죠

mov eax,100 (ia32)

mov r0,#100 (armv7)

위에건 인텔cpu의 어셈블리어고

밑에건안드로이드 어셈블리어의일종입니다

저걸해석하면 mov는move움직이다

eax를 100에

이걸해석하면

eax에 100을 움직인다

약간 수학적으로하면 eax = 100 입니다

이정도해도 잘한것예요 이정도만알아도 안드로이드모딩은어느정도할수있을것입니다

이제 다음걸배워보죠

ret (ia32)

bx lr (armv7)

일단위에건뜻이 return 돌아가다

밑에건 bx lr link register로 둘다 같은의미이지만

뜻을하자면 호출한 함수로부터 돌려보내는 명령입니다

이제 호출하는 명령이 궁금하겠죠

call 메모리주소

bl 메모리주소 

뜻은 메모리주소에있는 함수를 호출합니다입니다

저걸로한후 bx lr ret등으로 월래위치로 돌려보내는구조이죠

이정도면 초보자에게는 충분하다고하고

레지스터를 배워보죠

용도들은 다른글에있으니참고하고 여기는 더쉽게해보죠

레지스터(Register)는 CPU알죠 연산하는것요

거기서 처리한데이터를 임시용으로 저장하는것입니다

장점하나배워보죠 저장하는값의범위가작지만 cpu와연결되있었어

램보다 몇배이상은 더빨라요(연산이)

이글은초보중에서 기본글을이해하지못하는사람에게드리는글이면

이글을읽고 제블로그의다른글을 이제다시한번읽어보세요

 

 

 

반응형