武林外传点击选怪call

#include "stdafx.h"  
#include <atlstr.h>  

#pragma data_seg(".Share")    
HWND g_hMainWnd=NULL;//主窗口句柄;    
HHOOK hhkHook=NULL; //鼠标钩子句柄;    
HINSTANCE hInstDll=NULL;//本dll实例句柄;   
DWORD g_dwHookPid=-1;//要HOOK的进程的PID  
BOOL g_bIsFirstLoad=TRUE;//判断是否是第一次加载本dll  
DWORD callTemp[6]={0,0,0,0,0,0<span style="color:#ff0000;">};//这个空间是全局的,不然的话点击选怪完毕后 会有别的代码来修改这里为0 所以会提示某个内存地址不可读取的错误 就是因为你的这个数组如果是局部的 随着注入结束 也结束 空间不存在
//注意:点击选怪call ce搜到的存储怪物id的内存地址 查看修改此地址的代码 完后od转到此地址 ctrl+f9 看到的call基本就是点击选怪call 但是参数两个 一个是用来存储怪物id等信息的内存地址  一个就是存放着点击后怪物id等信息(但是这个地址处的数据一直在变动 只有当点击的时候 才会被别的call或什么地方 经过计算点击的鼠标位置和怪物的位置 最后算出点到的怪物的怪物id等信息 完后存放到临时的那个地址处 你ce查看哪里修改了这个地址的代码  会发现怎么也找不到 只能搜到一堆call 和一群混淆视线的mov之类的无用指令  如果要自动运行  就必须先知道要攻击的怪物的ID等信息  所以你找哪里把怪物id存放到那个地址里 不是白费功夫吗 ) 
 
#pragma data_seg()    
#pragma comment(linker, "/section:.Share,rws")  

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		{

		
				hInstDll=GetModuleHandle(0);//这行不能少  
				g_bIsFirstLoad = FALSE;  
				MessageBox(NULL,L"注入成功",L"信息",MB_ICONINFORMATION); 
				callTemp[4] = 0x34;
				callTemp[5] = 0x80003214;//怪物id
				callTemp[3] =(DWORD) &callTemp[5] ;
				__asm
				{

				
						
							 mov ecx,0x16C2B068;//用来存储怪物id等信息的内存地址
							 lea eax,callTemp; //必须lea 不能直接mov
						          push eax;
							 mov edx,0x0046DE60;//鼠标点击 的选怪call 必须先传给edx 再call edx
						          call edx;
							
		    }

				break;
		}
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值