본문 바로가기

InfoSec/Reversing

rev_basic_9 - (개선된)ROL, &0xff

https://dreamhack.io/wargame/challenges/23/?writeup_id=6441 

 

rev-basic-9

Reversing Basic Challenge #9 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출

dreamhack.io

거의 3시간은 쳐다본 것 같다.

크게 두 가지의 문제점이 있었다.

 

1. 역연산 과정에서 byte 크기를 간과해서 계속 오버플로우를 낸 것

2. 역연산 자체를 거의 청므 짜보다보니 제대로 작성을 못해서

    결국 내가 쓴 코드인데도 못알아보는 지경까지 간 것...

 

전 문제에서  ROL를 정말 더럽게 짰는데, 이렇게 짜면 훨씬 좋다.

//String a, int b
return a << b & 0xff | a >> b;

그리고 int 값이 된 값들을 다시 char로 되돌릴 경우

항상 마지막에 &0xff를 붙여주어 오버플로우를 막자... 제발...

이것 때문에 1시간은 추가로 고민해야했다

'InfoSec > Reversing' 카테고리의 다른 글

rev_basic_7 - ROR, ROL  (0) 2022.08.01
rev_basic_3 - dup 함수, xor, 역연산  (0) 2022.08.01