[드림핵] rev-basic-8

리안·2024년 1월 23일

Reversing

목록 보기
4/13

rev-basic-6 풀고 나니까 훨씬 수월하게 풀렸다. x32dbg로 입력값 검증 함수 확인해보자.

여기다. 이번에는 21번 반복한다.

입력값*FB와 FF를 and 연산하고, 그 값이 7FF6F3363000 배열에 있는 값과 같은지 검증한다. 7FF6F3363000에서 값 21개 가져와서 간단하게 코드 돌리면 될 것 같다.

import java.util.Scanner;

public class rev {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] dump= {0xAC, 0xF3, 0x0C, 0x25, 0xA3, 0x10, 0xB7, 0x25, 0x16, 0xC6, 0xB7, 0xBC, 0x07, 0x25, 0x02, 0xD5, 0xC6, 0x11, 0x07, 0xC5, 0x00};
		
		for(int j=0;j<21;j++) {
			for(int i=0;i<128;i++) {
				if(((i*0xFB)&0xFF)==dump[j]) System.out.print((char)i);
			}
		}
	}
}

히히~

6 풀 때도 느꼈지만 덤프에서 가져온 0x00 때문에 마지막은 늘 저렇게 공백이 되는데... 왜 그러는 거지

flag: Did_y0u_brute_force?

0개의 댓글