Current time: 06.05.2024, 14:46 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Программирование ВОГ
Author Message
feanor Offline

Posts: 622
Post: #37

Sample.rar
Cтавится хук на подсказки в окне юнита.

Code:
#include "main.h"

#include <windows.h>
#include <stdio.h>

#define OPCODE_JUMP 0xE9
#define OPCODE_CALL 0xE8
#define OPCODE_NOP 0x90

#define HOOKTYPE_JUMP 0
#define HOOKTYPE_CALL 1

#define HOOK_SIZE 5


inline void NopMem(void *mem, int size)
{
    memset((void*)mem,OPCODE_NOP,size);
}

inline void WriteHook( void *pOriginal, void *pNew, char type )
{
    *(byte*)pOriginal = (type==HOOKTYPE_JUMP)?OPCODE_JUMP:OPCODE_CALL;
    *(void**)( (byte*)pOriginal + 1 ) = (void*)( (byte*)pNew - (byte*)pOriginal - HOOK_SIZE );
}

#define MSG_OK 1
#define MSG_YES_NO 2
#define MSG_RIGHT_CLICK 4


__fastcall int (*ShowMSG)(const char *text, int type, int f1, int f2, int f3, int f4, int f5, int f6, int f7, int f8, int f9, int f10) =
      (__fastcall int (*)(const char*, int, int, int, int, int, int, int, int, int, int, int))(0x4F6C00);

__cdecl void  (*CallERM)(int num) =
        (__cdecl void(*)(int))(0x74CE30);

#define URMB_NAME_AREA           0x0D
#define URMB_DEFENCE_AREA        0x95
#define URMB_ATTACK_AREA         0x97
#define URMB_DAMAGE_AREA         0x78
#define URMB_SHOTS_AREA          0x7B
#define URMB_HP_AREA             0x6B
#define URMB_CURRHP_AREA         0x29
#define URMB_SPEED_AREA          0x5A
#define URMB_EFFECTS_AREA        0x3D //действующие заклятья
#define URMB_DISMISS_AREA        0x39 //кнопка "Уволить"
#define URMB_OK_AREA             0x72 //кнопка "Ок"
#define URMB_UPGRADE_AREA        0x30 //стрелки апгрейда
#define URMB_MAGIC_AREA          0x14 //кнопка каста у волшебных драконов
#define URMB_NUMBER_AREA         0x23 //количество существ в стеке


BOOL NewMsg(unsigned char type, int unit)
{
    char buf[200];
    if(type==URMB_NAME_AREA)
    {
        sprintf(buf,"%02X %i", type, unit);
        ShowMSG(buf,MSG_RIGHT_CLICK,-1, -1, -1, 0, -1, 0, -1, 0, -1, 0);
        return true;
    }

    if(type==URMB_MAGIC_AREA)
    {
        ShowMSG("Колдовать/атаковать",MSG_RIGHT_CLICK,-1, -1, -1, 0, -1, 0, -1, 0, -1, 0);
        return true;
    }

    if(type==URMB_EFFECTS_AREA)
    {
        CallERM(4001);
        return true;
    }
   return false;
}


__fastcall int hook_5F4E84(const char *text, int type, int f1, int f2, int f3, int f4, int f5, int f6, int f7, int f8, int f9, int f10)
{

    register void *eax asm("eax");
    register void *ebx asm("ebx");
    unsigned char unit = ((char*)ebx)[0x60];

    if(NewMsg((int)eax,unit))
       return 0;
    else
       return ShowMSG(text, type, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10);
}




extern "C" __stdcall BOOL DllMain( HINSTANCE hInstanceDLL, DWORD Reason, void *pReserved )
{
    switch (Reason)
    {
        case DLL_PROCESS_ATTACH:
        {
        WriteHook((void*)0x5F4E84,(void*)hook_5F4E84,HOOKTYPE_CALL);
        } break;

        case DLL_PROCESS_DETACH:
            // detach from process
            break;

        case DLL_THREAD_ATTACH:
            // attach to thread
            break;

        case DLL_THREAD_DETACH:
            // detach from thread
            break;
    }
    return TRUE; // succesful
}
(This post was last modified: 27.02.2010 15:53 by feanor.)
27.02.2010 15:36
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Программирование ВОГ - Дьякон - 25.02.2010, 00:15
RE: Обсуждение - обо всём - etoprostoya - 25.02.2010, 01:12
RE: Обсуждение - обо всём - Shihad - 25.02.2010, 09:20
RE: Обсуждение - обо всём - baratorch - 25.02.2010, 16:11
RE: Обсуждение - обо всём - Berserker - 25.02.2010, 16:30
RE: Обсуждение - обо всём - etoprostoya - 25.02.2010, 16:36
RE: Обсуждение - обо всём - baratorch - 25.02.2010, 16:38
Программирование ВОГ - baratorch - 25.02.2010, 16:52
RE: Программирование ВОГ - etoprostoya - 25.02.2010, 17:42
RE: Программирование ВОГ - baratorch - 25.02.2010, 20:05
RE: Программирование ВОГ - GrayFace - 26.02.2010, 05:57
RE: Программирование ВОГ - baratorch - 26.02.2010, 17:55
RE: Программирование ВОГ - SAG - 26.02.2010, 18:02
RE: Программирование ВОГ - Berserker - 26.02.2010, 19:10
RE: Программирование ВОГ - etoprostoya - 26.02.2010, 19:14
RE: Программирование ВОГ - asm - 27.02.2010, 00:12
RE: Программирование ВОГ - Berserker - 26.02.2010, 19:46
RE: Программирование ВОГ - baratorch - 26.02.2010, 20:24
RE: Программирование ВОГ - feanor - 26.02.2010, 20:26
RE: Программирование ВОГ - Berserker - 26.02.2010, 20:28
RE: Программирование ВОГ - ZURG - 26.02.2010, 20:30
RE: Программирование ВОГ - feanor - 27.02.2010 15:36
RE: Программирование ВОГ - baratorch - 27.02.2010, 20:43
RE: Программирование ВОГ - Berserker - 27.02.2010, 21:04
RE: Программирование ВОГ - baratorch - 27.02.2010, 22:10
RE: Программирование ВОГ - etoprostoya - 27.02.2010, 22:21
RE: Программирование ВОГ - Berserker - 27.02.2010, 22:28
RE: Программирование ВОГ - asm - 27.02.2010, 22:43
RE: Программирование ВОГ - Berserker - 27.02.2010, 23:39
RE: Программирование ВОГ - etoprostoya - 27.02.2010, 23:41
RE: Программирование ВОГ - baratorch - 28.02.2010, 00:36
RE: Программирование ВОГ - etoprostoya - 28.02.2010, 00:45
RE: Программирование ВОГ - baratorch - 28.02.2010, 00:58
RE: Программирование ВОГ - GrayFace - 28.02.2010, 09:38
RE: Программирование ВОГ - baratorch - 28.02.2010, 12:46
RE: Программирование ВОГ - GrayFace - 03.03.2010, 21:22
RE: Программирование ВОГ - feanor - 28.02.2010, 19:41
RE: Программирование ВОГ - Berserker - 28.02.2010, 19:46
RE: Программирование ВОГ - Дьякон - 01.03.2010, 20:51
RE: Программирование ВОГ - feanor - 01.03.2010, 22:34
RE: Программирование ВОГ - baratorch - 03.03.2010, 23:59
RE: Программирование ВОГ - GrayFace - 04.03.2010, 23:43
RE: Программирование ВОГ - etoprostoya - 04.03.2010, 00:08
RE: Программирование ВОГ - Berserker - 04.03.2010, 00:13
RE: Программирование ВОГ - etoprostoya - 04.03.2010, 00:22
RE: Программирование ВОГ - feanor - 04.03.2010, 00:37
RE: Программирование ВОГ - etoprostoya - 04.03.2010, 01:02
RE: Программирование ВОГ - baratorch - 05.03.2010, 21:48
RE: Программирование ВОГ - etoprostoya - 05.03.2010, 21:51
RE: Программирование ВОГ - Berserker - 05.03.2010, 21:58
RE: Программирование ВОГ - baratorch - 05.03.2010, 22:52
RE: Программирование ВОГ - Berserker - 06.03.2010, 00:22
RE: Программирование ВОГ - baratorch - 06.03.2010, 01:07
RE: Программирование ВОГ - baratorch - 06.03.2010, 01:26
RE: Программирование ВОГ - SAG - 09.03.2010, 14:26
RE: Программирование ВОГ - gamecreator - 09.03.2010, 17:52
RE: Программирование ВОГ - feanor - 09.03.2010, 20:21
RE: Программирование ВОГ - baratorch - 09.03.2010, 23:43
RE: Программирование ВОГ - etoprostoya - 10.03.2010, 00:51
RE: Программирование ВОГ - SAG - 10.03.2010, 14:46
RE: Программирование ВОГ - baratorch - 10.03.2010, 21:04
RE: Программирование ВОГ - SAG - 11.03.2010, 18:29
RE: Программирование ВОГ - baratorch - 10.03.2010, 02:13
RE: Программирование ВОГ - etoprostoya - 10.03.2010, 02:20
RE: Программирование ВОГ - etoprostoya - 10.03.2010, 15:07
RE: Программирование ВОГ - GrayFace - 10.03.2010, 19:21
RE: Программирование ВОГ - baratorch - 11.03.2010, 23:41
RE: Программирование ВОГ - baratorch - 13.03.2010, 23:16
RE: Программирование ВОГ - Efrit - 13.03.2010, 23:26
RE: Программирование ВОГ - etoprostoya - 13.03.2010, 23:49
RE: Программирование ВОГ - Дьякон - 23.03.2010, 22:39
RE: Программирование ВОГ - GrayFace - 25.03.2010, 14:17
RE: Программирование ВОГ - Дьякон - 25.03.2010, 22:21
RE: Программирование ВОГ - etoprostoya - 26.04.2010, 00:31
RE: Программирование ВОГ - Berserker - 26.04.2010, 00:33
RE: Программирование ВОГ - baratorch - 26.07.2010, 02:13
RE: Программирование ВОГ - Дьякон - 26.07.2010, 09:09
RE: Программирование ВОГ - baratorch - 26.07.2010, 13:12
RE: Программирование ВОГ - SAG - 26.07.2010, 13:35
RE: Программирование ВОГ - baratorch - 27.07.2010, 00:59
RE: Программирование ВОГ - SAG - 28.07.2010, 11:31
RE: Программирование ВОГ - etoprostoya - 26.07.2010, 14:14
RE: Программирование ВОГ - Berserker - 26.07.2010, 16:59
RE: Программирование ВОГ - Berserker - 27.07.2010, 01:06
RE: Программирование ВОГ - GrayFace - 27.07.2010, 13:19
RE: Программирование ВОГ - Druin - 28.07.2010, 12:06
RE: Программирование ВОГ - MOP - 28.07.2010, 13:33
RE: Программирование ВОГ - baratorch - 29.07.2010, 09:34
RE: Программирование ВОГ - SAG - 29.07.2010, 18:58
RE: Программирование ВОГ - etoprostoya - 29.07.2010, 09:54
RE: Программирование ВОГ - vizit0r - 29.07.2010, 12:36
RE: Программирование ВОГ - baratorch - 30.08.2010, 18:58
RE: Программирование ВОГ - gamecreator - 30.08.2010, 19:28
RE: Программирование ВОГ - GrayFace - 31.08.2010, 22:25
RE: Программирование ВОГ - baratorch - 03.09.2010, 00:52
RE: Программирование ВОГ - etoprostoya - 18.02.2012, 14:29
RE: Программирование ВОГ - totkotoriy - 18.02.2012, 16:27
RE: Программирование ВОГ - kostya_76 - 18.02.2012, 19:14
RE: Программирование ВОГ - totkotoriy - 19.02.2012, 13:23
RE: Программирование ВОГ - Sav - 18.02.2012, 20:52
RE: Программирование ВОГ - MOP - 20.02.2012, 07:54
RE: Программирование ВОГ - Berserker - 20.02.2012, 18:56
RE: Программирование ВОГ - MOP - 20.02.2012, 19:08
RE: Программирование ВОГ - Berserker - 20.02.2012, 20:02
RE: Программирование ВОГ - MOP - 21.02.2012, 12:12
RE: Обсуждение - обо всём - Corwin - 25.02.2010, 16:53
[split] Обсуждение - обо всём - Berserker - 25.02.2010, 17:13
RE: Обсуждение - обо всём - Дьякон - 25.02.2010, 20:42
RE: Обсуждение - обо всём - Berserker - 25.02.2010, 22:17
RE: Обсуждение - обо всём - packa - 25.02.2010, 22:22
RE: Обсуждение - обо всём - Berserker - 25.02.2010, 23:16
RE: Обсуждение - обо всём - Berserker - 25.02.2010, 23:34
RE: Обсуждение - обо всём - Дьякон - 25.02.2010, 23:47
RE: Обсуждение - обо всём - Berserker - 25.02.2010, 23:58
RE: Обсуждение - обо всём - Дьякон - 26.02.2010, 00:13
RE: Обсуждение - обо всём - Berserker - 26.02.2010, 00:17
RE: Обсуждение - обо всём - asm - 26.02.2010, 00:20
RE: Обсуждение - обо всём - Дьякон - 26.02.2010, 00:29
RE: Обсуждение - обо всём - Berserker - 26.02.2010, 00:38
RE: Обсуждение - обо всём - Berserker - 26.02.2010, 00:49

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group