Chameleon

Chameleon Svn Source Tree

Root/branches/ErmaC/Trunk/i386/modules/HelloWorld/HelloWorld.cpp

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

Archive Download this file

Revision: 2111