
이 문제를 풀었다

언제나 그랬듯이 문자열 참조해서 jump 하기 바로 직전 함수에 접근해보았다.
cmp rax, 18 -> 24번 반복한다.
실행시키며 확인한 것은 입력한 첫번째 문자와 두번째 문자를 더한 값이 AD이면 반복, 두번째 문자와 세번째 문자를 더한 값이 D8이면 반복... 이런 식으로 문자열을 검증한다는 것이었다.

처음엔 아니... 더해서 그 값이 나오는 걸 어케 찾아 이랬는데
하하 24번째 값이 00이다. 그럼 마지막 문제는 4C+00, 즉 4C일 것이다.
계산기 놓고 계산해보다가 그럼 거꾸로 나오는 것도 거꾸로 나오는 거고... 귀찮아서 코드 돌렸다.
import java.util.Scanner;
public class rev {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] dump= {0xAD, 0xD8, 0xCB, 0xCB, 0x9D, 0x97, 0xCB, 0xC4, 0x92, 0xA1, 0xD2, 0xD7,
0xD2, 0xD6, 0xA8, 0xA5, 0xDC, 0xC7, 0xAD, 0xA3, 0xA1, 0x98, 0x4C, 0x00};
int[] result=new int[dump.length];
int index=dump.length-2;
result[dump.length-1]=dump[dump.length-1];
for(int i=dump.length-2;i>=0;i--) {
result[index]=dump[i]-result[index+1];
index--;
}
for(int i=0;i<result.length;i++) {
System.out.print((char)result[i]);
}
}
}

짜잔~! 끝이다.
흠... 분석 다 쓰는 거 이제 스킵하려고 했더니 너무 짧아지네
flag: DH{All_l1fe_3nds_w1th_NULL}