시스템해킹
-
가상함수(Virtual function)와 가상함수테이블(vtable)의 이해# 시스템 해킹 공부중 2019. 7. 17. 02:16
오버라이딩(Overriding) 가상함수를 이해하기 위해선 오버라이딩(Overriding) 에 대해서 알아야 한다. SourceCode(1) class Parent{ void show(){ printf("this is parent\n"); } } class Child : public Parent{ void show(){ printf("this is child\n"); } } class ChildChild : public Child{ void show(){ printf("this is childchild\n"); } } int main(){ Parent * p = new Parent; Child * c = new Child; ChildChild * cc = newChildChild; p->show(); c..
-
[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