[IDA] 03. 아이다 안에서 구조체 활용하기

두비니

·

2019. 8. 10. 22:34

[IDA]

 

03. 아이다 안에서 구조체 활용하기

 

 


 

어떤 이유인지는 모르지만 IDA는 아직 구조체를 인식하지 못하는 것 같습니다.

 

또 Cat입니다. 유후

 

위 코드는 ASIS CTF 의 문제 Cat의 일부입니다. 보면 27번 줄에 0x18만큼 heap에 할당을하고 밑에 차례대로 name과 kind, 그리고 age를 입력받네요. 보아하니 구조체인데, 알아보기 힘든 면이 없지않아 있네요.

 

 

다음은 Structures탭에 들어간 모습입니다. 여기서 새로운 구조체를 선언해줄 수 있는데요, 여기서 그냥 Insert키를 눌러주면 됩니다.

 

 

여기다가 입력을 해주시면

 

이렇게 구조체가 추가된 것을 볼 수 있는데, 이제 안에 있는 멤버들도 넣어주어야겠죠?

그건 ends를 누른 뒤에 'd' 키를 누르면 됩니다. 

그러면 저런식으로 멤버들을 추가시킬 수 있는데, 이름은 우클릭으로 바꿀 수 있으며, 각각 크기는 db부분을 클릭한 후 d를 누르면 변수의 크기를 바꿀 수 있습니다.

 

이렇게 설정을 해주었으면 연결을 시켜주어야겠죠? 다시 pseudocode로 돌아가서,

 

원하는 부분에다가 우클릭 후 set item type를 누르거나 y를 눌러줍니다.

 

어 이거 아니에요 밑에있는 볼드글씨 참고하길

 

다음과 같이 입력해주면 됩니다.

 

struct (이름) *(이름)_0[10]

 

이렇게 쓰면

 

짜잔. 이제 구조체 형식으로 보이쥬?

 

끝.