Root/
Source at commit 1274 created 12 years 11 months ago. By meklort, Module changes, makefile changes. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2009 Evan Lojewski. All rights reserved.␊ |
3 | *␊ |
4 | */␊ |
5 | #include <cstdlib>␊ |
6 | #include <iostream>␊ |
7 | #include <modules>␊ |
8 | ␊ |
9 | using namespace std;␊ |
10 | ␊ |
11 | class HW {␊ |
12 | private:␊ |
13 | ␉int id;␊ |
14 | public:␊ |
15 | ␉virtual void setId( int id );␊ |
16 | ␉virtual void printHello( void );␊ |
17 | };␊ |
18 | ␊ |
19 | void helloWorld(void* binary, void* arg2, void* arg3, void* arg4)␊ |
20 | {␊ |
21 | ␉HW* obj = new HW;␊ |
22 | ␉HW* obj2 = new HW;␊ |
23 | ␉obj->setId(1);␊ |
24 | ␉obj->printHello();␊ |
25 | ␉delete obj;␊ |
26 | ␉␊ |
27 | ␉obj2->setId(2);␊ |
28 | ␉obj2->printHello();␊ |
29 | ␉delete obj2;␊ |
30 | ␊ |
31 | ␉printf("Hello world from ExecKernel hook. Binary located at 0x%X\n", binary);␊ |
32 | ␉getchar();␊ |
33 | ␉␊ |
34 | ␉//␊ |
35 | ␉␊ |
36 | }␊ |
37 | ␊ |
38 | void HelloWorld_start()␊ |
39 | {␊ |
40 | ␉//printf("Hooking 'ExecKernel'\n");␊ |
41 | ␉register_hook_callback("ExecKernel", &helloWorld);␊ |
42 | ␉register_hook_callback("Kernel Start", &helloWorld);␊ |
43 | ␊ |
44 | }␊ |
45 | ␊ |
46 | void HW::printHello()␊ |
47 | {␊ |
48 | ␉//cout << "[" << id << "] HelloWorld from a c++ function\n";␊ |
49 | ␉printf("[%d] HelloWorld from a c++ function\n", id);␊ |
50 | }␊ |
51 | ␊ |
52 | void HW::setId(int id)␊ |
53 | {␊ |
54 | ␉this->id = id;␊ |
55 | }␊ |
56 |