RC4 AES aes – python Blowfish SEED SEED – python C++ STL std::string std::vector std::map VM IDA Appcall Angr ROR/ROL Rust Debug-mode binary Debugging
삽질
WinAFL Fuzzing
준비물 DynamoRIO WinAFL Visual Studio 2019 Fuzzing 순서 바이너리 분석 후, 퍼징할 함수가 export(dll)되어있거나 persistent mode로 퍼징 가능한지 판단 Fuzzing dll exported인 경우: Harness 작성 persistent mode로 퍼징 가능한 경우 afl-fuzz 인자값으로 해당 함수 offset 지정할 것 함수 내부에 파일을 open/close 여부 확인 후, 상위함수 사용 고려 Crash 분석 Fuzzing 더 읽기
Flutter Reversing on Android
1. Flutter flutter란 dart언어를 사용하며 multi-platform 을 지원하는 native 앱 개발 프레임워크입니다. 내부적으로 아래와 같은 구조를 가지고 있습니다. 주로 dart는 UI를 구현하는데 사용되고, 추가적인 http 요청 및 SharedPreference와 같은 부분은 Flutter Engine에서 구현된 부분을 사용하도록 앱을 작성합니다. 이 때, Framework는 Dart VM으로 구현되어 있고 내부에서 Engine에 존재하는 함수를 호출하도록 되어있습니다. 더 읽기
stack canary 분석
1. 서론 32/64bit 환경에서 Stack Canary 기법이 걸려있는 것을 많이 볼 수 있다. 여러 pwnable 문제만 봐도 Stack Canary + Heap Exploit이 거의 대다수를 이루고 있다. 근데 여태까지 Stack Canary가 Mitigation인 것만 알고 있었고 어떤 식으로 동작을 하는지 분석을 해본적이 없었다. 뭐.. 심심하기도 해서 이렇게 분석한 것을 글로 남긴다. 2. 본론 더 읽기
Android 10 Permissions
TL;DR 이 문서는 Android 10 버전부터 적용된 PermissionController의 동작 흐름을 따라가며, 원리를 파악하기 위해 작성되었습니다. Android Permission 안드로이드는 사용자로부터 퍼미션을 승인/거부 후, 해당 기능을 사용할 수 있습니다. 보통 퍼미션 요청을 보낼 때, 아래와 같은 코드를 사용해 사용자로부터 승인 여부를 기다립니다. 승인 여부는 해당 activity 클래스의 onRequestPermissionsResult함수를 통해 알 수 있습니다. 더 읽기
CNN을 사용한 Captcha bypass
Captcha CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 완전 자동화된 사람과 컴퓨터 판별, 캡차)는 HIP(Human Interaction Proof) 기술의 일종으로, 어떠한 사용자가 실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법이다. — wiki Catcha를 우회하기위한 목적은 회원가입/글쓰기 등의 자동화를 하기 위함이다. 하지만 각각 사이트 별로 구현된 Captcha 구현방식이 대부분 다르기 때문에 각 사이트 별로 우회방법을 생각해봐야한다. 따라서 더 읽기