reversing/angr(7)
-
[angr] CSCI-4968-MBE crackme0x03
[CSCI-4968-MBE] crackme0x03 이전의 문제들과 같이 알맞은 패스워드를 알아내는 문제이다. ida로 바이너리를 열어보니,입력값([ebp+var_4])과 [ebp+var_C] 값을 test 함수의 인자로 넘겨준다. * ( [ebp+var_4(or C)] : ebp+var_4(or C) 값이 가리키는 값 ) test 함수로 들어가보면,cmp를 기준으로 분기를 볼 수 있다. 두 인자를 비교해서 0이면(같으면) "Sdvvzrug#RN$$$#=," 문자열을 인자로,0이 아니면(틀리면) "Lqydolg#Sdvvzrug$" 문자열을 인자로 shift 함수를 호출한다. 위 코드를 보면 더 자세히 알 수 있다. shift 함수 내부를 보면인자로 넘겨준 문자열을 디코딩 해주는 함수이다. 이를 파이썬으로 ..
2019.03.11 -
[angr] CSCI-4968-MBE crackme0x02
[CSCI-4968-MBE] crackme0x02 0x00a, 0x01 문제와 같이알맞은 패스워드를 알아내야하는 문제이다. cmp를 기준으로 분기를 볼 수 있고,입력값과 [ebp+var_C]와 비교해서 결과가 0이면(같으면) "Password OK :)"를 0이 아니면(틀리면) "Invalid Password!" 를 출력한다. 찾아야할 주소와 피해야 할 주소는 각각0x804845A ("Password OK :)" 출력),0x8048468 ("Invalid Password!" 출력) 이다. [code] 123456789101112131415import angr p = angr.Project('./crackme0x02', auto_load_libs = False) find_addr = 0x804845Aavo..
2019.03.11 -
[angr] CSCI-4968-MBE crackme0x01
[CSCI-4968-MBE] crackme0x01 바이너리를 실행해보면 비밀번호를 입력하라고 한다.이번에도 알맞은 비밀번호를 알아내야 하는 것 같다. ida로 바이너리를 열어보면cmp를 기준으로 분기를 볼 수 있다. cmp [ebp+var_4], (비교 문자) 로,알맞은 비밀번호를 입력하면 "Password OK :)"를 출력한다. 사실 cmp [ebp+var_4], 149Ah 라고 되어있어서 149A를 10진수로만 바꿔주면 바로 비밀번호를 알 수 있었다... 찾아야할 주소와 피해야할 주소는 각각 0x8048449 ("Password OK :)" 출력)0x804843B ("Invalid Password!" 출력) 이다. [code] 123456789101112131415import angr find_ad..
2019.03.11 -
[angr] CSCI-4968-MBE crackme0x00a
[CSCI-4968-MBE] crackme0x00a 바이너리를 실행해보면 비밀번호를 입력하라는 문자열이 나왔다.이 문제는 알맞은 비밀번호를 알아내는 문제인 것 같다. ida로 바이너리를 열어보면,strcmp 함수를 기준으로 분기를 볼 수 있다. 아무래도 입력한 값과 어떠한 값을 비교해서같으면 "Congrats!"를,틀리면 "Wrong!"을 출력하는 것 같다. 사실 ida로 열어보니 mov dword ptr [esp], offset pass_1685 ; (정답....)으로 답이 나와있길래.....애써 무시하고 풀어보았다.(위의 사진에는 모자이크 처리했다.) 찾아야 할 주소와 피해야 할 주소는 각각0x804853A ("Congrats!" 출력)0x804855B ("Wrong!" 출력) 이다. [code] 1..
2019.03.10 -
[angr] ais3_crackme
ais3_crackme 참고 : (cast_to 관련) https://docs.angr.io/appendix/migration 바이너리를 실행하려고 시도했지만 key를 입력하라는 문자열을 출력하고 종료 되어버렸다.... 아무래도 key 문자열을 main함수 인자로 함께 줘야 하는 것 같다. 아무래도 알맞는 키를 구해야 하는 것 같다. 바이너리 파일을 ida로 열어본 결과, verify 함수 이후로 분기가 있다는 것을 볼 수 있었다. 피해야할 곳은 I'm sorry, that's the wrong secret key! 를 출력하는 0x40060E 이고, 찾아야 하는 곳은 Correct! that is the secret key! 를 출력하는 주소이다. 위 사진을 보면 찾아야 할 주소가 0x400607이라는..
2019.03.06 -
[angr] baby-re 2019.03.04