Chameleon

Chameleon Svn Source Tree

Root/branches/azimutz/Chazi/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 );
23};
24
25void helloWorld(void* binary, void* arg2, void* arg3, void* arg4)
26{
27HW* obj = new HW;
28HW* obj2 = new HW;
29obj->setId(1);
30obj->printHello();
31delete obj;
32
33obj2->setId(2);
34obj2->printHello();
35delete obj2;
36
37printf("Hello world from ExecKernel hook. Binary located at 0x%X\n", binary);
38getc(); //Azi: getchar();
39}
40
41void HelloWorld_start()
42{
43//printf("Hooking 'ExecKernel'\n");
44register_hook_callback("ExecKernel", &helloWorld);
45register_hook_callback("Kernel Start", &helloWorld);
46
47}
48
49void HW::printHello()
50{
51//cout << "[" << id << "] HelloWorld from a c++ function\n";
52printf("[%d] HelloWorld from a c++ function\n", id);
53}
54
55void HW::setId(int id)
56{
57this->id = id;
58}
59

Archive Download this file

Revision: 1023