세미나용으로 만든 UAF 예제코드
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
class B
{
public:
char *v1 = NULL;
virtual void foo(int a)
{
cout << "B Foo Call" << a << endl;
}
};
class D : public B
{
public:
char *buff;
void foo(int a)
{
cout << "D Foo Call " << a << endl;
}
};
class E
{
public:
char buff[24]="";
void test(int a){
cout << "E->TEST "<<endl;
}
void copy(char *v2){
memcpy(buff,v2,20);
}
};
int foo3(){
cout << "This is UNUSING FOO " <<endl;
return 0;
}
int (*funcAddr)() = foo3;
int main(int argc, char *argv[]){
char * test;
B *d,*b;
E *e;
printf("-------------------------------\n");
printf("[PRINT] UNUSING FOO function addr %x \n",&funcAddr);
printf("-------------------------------\n");
d = new D;
delete d;
e = new E;
e->copy(argv[1]);
printf("d->foo(9) call \n");
d->foo(9);
return 0;
}
'System_Hacking' 카테고리의 다른 글
Android stageFright RCE exploit (0) | 2015.09.10 |
---|---|
ARM32 netcat static compile (0) | 2015.09.02 |
ARM 32bit assambly 설명 잘된 링크 (0) | 2015.05.17 |
64bit 포멧스트링 널바이트 만들어주기 (0) | 2015.04.24 |
gef peda 의 다양한 아키텍쳐 버젼 (0) | 2015.04.01 |