리버싱
-
[리버싱] lighthouse + DynamoRIO - 프로그램 실행 흐름 확인# 시스템 해킹 공부중 2020. 2. 26. 22:19
프로그램을 리버싱할 때, 프로그램이 어떤 block 들을 거쳐서 실행되는지 그 실행 흐름을 확인할 수 있고 그 흐름이 일정하다면 리버싱할 때 좀 더 효율적으로 할 수 있고, 분석의 정확도를 높일 수 있다. 이 때 사용할 수 있는 유용한 플러그인과 도구가 있어 간단하게 기록한다. 1. DynamoRIO DynamoRIO는 DBI(Dynamic Binary Instrumentation) Framework중 하나로, 프로세스에 동적으로 명령어를 삽입해서, 정보를 얻거나 특정 행위를 할 수 있도록 하는 시스템이다. 다운로드는 아래 링크를 통해서, 실행환경에 맞는 버전을 받아서 압축을 해제하면 된다. https://github.com/DynamoRIO/dynamorio/wiki/Downloads DynamoRIO..
-
[MIPS] strcmp# 시스템 해킹 공부중 2018. 4. 4. 16:07
[MIPS strcmp] 동작 분석 [그림0] strcmp 코드 [그림1] 변수 공간 할당 및 $ra, $fp 백업후 frame pointer 갱신 [그림2] 스택에 str1, str2, str3 순서대로 저장 [그림3] $v0 값 스택에 백업 후 $a0, $a1 에 인자값 load 후 strcmp 호출 [그림4] if(!strcmp(str1, str2)) => bnez $v0, loc_40092C bnez는 $v0 값이 0이 아니면 두번째 오퍼랜드로 분기 즉 $a0과 $a1 문자열이 같으면 분기 x 문자열이 다르면 분기 o