[angr] CSCI-4968-MBE crackme0x02

2019. 3. 11. 16:48reversing/angr




[CSCI-4968-MBE] crackme0x02




0x00a, 0x01 문제와 같이

알맞은 패스워드를 알아내야하는 문제이다.



cmp를 기준으로 분기를 볼 수 있고,

입력값과 [ebp+var_C]와 비교해서 


결과가 0이면(같으면) "Password OK :)"

0이 아니면(틀리면) "Invalid Password!" 를 출력한다.



찾아야할 주소와 피해야 할 주소는 각각

0x804845A ("Password OK :)" 출력),

0x8048468 ("Invalid Password!" 출력) 이다.



[code]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import angr
 
= angr.Project('./crackme0x02', auto_load_libs = False)
 
find_addr = 0x804845A
avoid_addr = 0x8048468
 
state = p.factory.entry_state()
 
= p.factory.simulation_manager(state)
s.one_active.options.add(angr.options.LAZY_SOLVES)
s.explore(find = find_addr, avoid = avoid_addr)
 
print('[*] FIND FLAG : ')
print(s.one_found.posix.dumps(0)[4:10])
cs


[flag]


'reversing > angr' 카테고리의 다른 글

[angr] CSCI-4968-MBE crackme0x03  (0) 2019.03.11
[angr] CSCI-4968-MBE crackme0x01  (0) 2019.03.11
[angr] CSCI-4968-MBE crackme0x00a  (1) 2019.03.10
[angr] ais3_crackme  (0) 2019.03.06
[angr] baby-re  (0) 2019.03.04