cdor1's lab
codegate 2017 angrybird 본문
프로그램이 정상적으로 실행되는 것을 막도록 바이너리가 패칭되어있는데
이렇게 exit함수를 부르거나 검증을 진행하는 함수들을 모두 nop으로 패칭한다.
(이런 분기문이 *50정도 더 있다....)
ida의 graph view를 보면 이렇게 다양한 분기문을 이용해서 옳은 값인지 확인하는데
이전에 포스팅했던 angr를 통해서 풀어보려고 한다.
import angr
proj = angr.Project("./angrybird", load_options={'auto_load_libs':False})
path_group = proj.factory.path_group(threads=2)
path_group.explore(find=0x404fab) #0x404fab로 가는 방법을 찾도록 set
print path_group.found[0].state.posix.dumps(0)
angr는 참 편리한 툴인 것 같다.
(angr가 없었다면 이런 문제도 안나왔겠지만 ㅎ..)
'Security > Reversing' 카테고리의 다른 글
CodeEngn Advance 03 (0) | 2017.03.22 |
---|---|
CodeEngn Advance 02 (0) | 2017.03.21 |
CodeEngn Advance 01 (0) | 2017.03.20 |
ReverseLab2: DLL Injection (0) | 2016.08.10 |
ReverseLab1: UPX packed PE File analyze (0) | 2016.07.27 |
Comments