-0x4(r4)에 0x00 값이 들어가면 안됨. 이후 복구 할 수 있는 방안이 없어보임
-0x4(r4) == 0x43e8 = 0x00 : 이 값이 0이면 결국 JZ분기에 의해 실패로 분기된다.
1. mov.b -0x4(r4), r15 로 인해 r15의 첫번째 바이트는 널바이트가 됨 cf) 7d00 -> 0000
사용자 값으로 인해 두번째 바이트가 영향을 받을 수 있는지 찾아보자.
2. call #0x4542 : 호출 뒤에 r15의 값 7dee에서 7d00으로 변환됨
3. sxt r15 1111 => 0011
0000 => 0000
1100 => 0000
0011 => 0011
0110 => 0010
1001 => 0001
1010 =>
0001 =>
모르겠다!!!!!!!!!!!!!
Write up 보고 푼 후기------------------------------------------------------------------------
1. 개발자의 말을 신뢰하지 말 것.
2. 계속 한군데에 매달려도 답이 안보인다면 엄한 곳에 삽질 중일 수 있으니 초점을 다른데로 바꿔볼 것.
3. 문제를 풀기위해서는 입력 값만으로 해결해야함을 명심하자. 내가 영향을 줄 수 있는 부분은 어디일지.
=> 여러가지 입렵 값을 테스트 해본다..(퍼징)
'리버싱CTF > EmbededSecurity CTF' 카테고리의 다른 글
Whitehorse (0) | 2019.12.27 |
---|---|
Reykjavik (0) | 2019.12.27 |
Hanoi (0) | 2019.12.24 |
Sydney (0) | 2019.12.23 |
New Orleans (0) | 2019.12.23 |