본문 바로가기

InfoSec/Reversing

(3)
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를 정말 더럽게 짰는데, 이렇게 짜면 훨씬 좋다...
rev_basic_7 - ROR, ROL https://dreamhack.io/wargame/challenges/21/ rev-basic-7 Reversing Basic Challenge #7 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출 dreamhack.io 문제에서는 8비트 단위로 rotate를 해주어야하는데 Integer.rotateRight/Left의 경우 4바이트다보니 1바이트 단위의 rotate 코드를 직접 짜주었다... public static void main(String[] args){ char[] b = new char[]{0x52, 0x0DF, 0x0B3, 0x60, 0x0F1, 0x8B..
rev_basic_3 - dup 함수, xor, 역연산 https://dreamhack.io/wargame/challenges/17/?mode=description&writeup_id rev-basic-3 Reversing Basic Challenge #3 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출 dreamhack.io dup 연산이 무엇인지 모르고 풀어서 30분 이상을 삽질했다... 역연산에는 역시 코딩이지