吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|wvlr.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 295|回复: 24

[求助] 为什么获取不到进程ID

[复制链接]
zsy6934702 发表于 2020-3-25 02:03
小白第一次用易语言模块,但是不知道为什么获取进程ID一直获取不到,刚接触想写简单写一个植物大战僵尸的修改器。用的精易模块,其他模块也试了也一样,静态编译出来用信息框显示也一样是0,游戏是开着的
0(7_%4{R2XZI(%H]5LCU$[P.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

古月不傲 发表于 2020-3-25 12:21
古月不傲 发表于 2020-3-25 12:08
那就用那几个函数获取进程句柄 不用模块就好了

C++版本

//游戏数据 头文件
[C++] 纯文本查看 复制代码
#pragma once

#include "stdafx.h"

#define AUTO_PLANT_BOMB 555

//游戏数据
typedef enum _GameData
{
	game_pause_base = 0x00472B50,			//游戏暂停

	game_sun_base = 0x007794F8,				//阳光基址
	game_sun_offset1 = 0x868,				//阳光偏移1
	game_sun_offset2 = 0x5578,				//阳光偏移1

	game_money_base = 0x00779618,			//金币基址
	game_money_offset1 = 0x950,				//金币偏移1
	game_money_offset2 = 0x50,				//金币偏移2

	game_plant_no_cd_base = 0x004B2FF3,		//种植无cd
	game_dazuihua_no_cd_base = 0x004855F5,	//大嘴花无cd

	game_plant_call = 0x00422610			//种植call
}GameData;

//自定义数据
typedef struct parameter
{
	DWORD xPos;
	DWORD yPos;
	DWORD plantsId;
}parameter, *pParameter;



//对话框 头文件
[C++] 纯文本查看 复制代码
// zwdzjs_fuzhuDlg.h: 头文件
//

#pragma once


// CzwdzjsfuzhuDlg 对话框
class CzwdzjsfuzhuDlg : public CDialogEx
{
// 构造
public:
	CzwdzjsfuzhuDlg(CWnd* pParent = nullptr);	// 标准构造函数

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_ZWDZJS_FUZHU_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持
	virtual void OnCancel();
// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedButtonSun();
	afx_msg void OnBnClickedButtonMoney();
	afx_msg void OnPaint();
	afx_msg void OnBnClickedButtonCd();
	afx_msg void OnBnClickedButtonEatingNocd();
	afx_msg void OnBnClickedButtonPlantCall();
	afx_msg void OnCbnSelchangeComboPlantsId();
	afx_msg void OnBnClickedButtonFullBom();
	afx_msg void OnBnClickedCheckClearPause();
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	afx_msg void OnBnClickedCheckAutoKill();
public:
	static void InjectPlantCall(LPVOID lpThreadParameter);
	static void InjectFullBom();

	void GetProcessHandle();
	void InjectRemoteFunc(LPVOID lpFuncAddress, LPVOID lpRemoteParam, DWORD dwParamSize);
	void ClearPause(PVOID pParamater);

	PDWORD CzwdzjsfuzhuDlg::ReadProcessMem(
		HANDLE hProcess,
		PVOID pBaseAddress,
		DWORD dwNumberOfOffset,
		PDWORD pOffsetBuffer);

	static unsigned __stdcall ButtonThread(void* pArguments);
	static unsigned __stdcall ClickedCheckThread(void* pArguments);
	void SharedFullBom();
public:
	HWND		m_hWnd;
	HANDLE		m_hProcess;
	DWORD		m_dwX;
	DWORD		m_dwY;
	DWORD		m_dwId;
	CComboBox	m_comboPlantsId;
	HANDLE		m_hButtonThread;
	HANDLE		m_hClickedCheckThread;
	HANDLE		m_hEvent;
};


//对话框 源文件
[C++] 纯文本查看 复制代码
// zwdzjs_fuzhuDlg.cpp: 实现文件
//

#include "stdafx.h"
#include "zwdzjs_fuzhu.h"
#include "zwdzjs_fuzhuDlg.h"
#include "afxdialogex.h"
#include "GameData.h"
#include <process.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CzwdzjsfuzhuDlg 对话框

CzwdzjsfuzhuDlg::CzwdzjsfuzhuDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_ZWDZJS_FUZHU_DIALOG, pParent)
	, m_hWnd(NULL)
	, m_dwX(0)
	, m_dwY(0)
	, m_dwId(0)
	, m_comboPlantsId()
	, m_hProcess(NULL)
	, m_hButtonThread(NULL)
	, m_hClickedCheckThread(NULL)
	, m_hEvent(NULL)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_PLANT);
}

void CzwdzjsfuzhuDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_COMBO_PLANTS_ID, m_comboPlantsId);
	DDX_Text(pDX, IDC_EDIT_XPOS, m_dwX);
	DDX_Text(pDX, IDC_EDIT_YPOS, m_dwY);
}

BEGIN_MESSAGE_MAP(CzwdzjsfuzhuDlg, CDialogEx)
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON_SUN, &CzwdzjsfuzhuDlg::OnBnClickedButtonSun)
	ON_BN_CLICKED(IDC_BUTTON_MONEY, &CzwdzjsfuzhuDlg::OnBnClickedButtonMoney)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON_CD, &CzwdzjsfuzhuDlg::OnBnClickedButtonCd)
	ON_BN_CLICKED(IDC_BUTTON_EATING_NOCD, &CzwdzjsfuzhuDlg::OnBnClickedButtonEatingNocd)
	ON_BN_CLICKED(IDC_BUTTON_PLANT_CALL, &CzwdzjsfuzhuDlg::OnBnClickedButtonPlantCall)
	ON_CBN_SELCHANGE(IDC_COMBO_PLANTS_ID, &CzwdzjsfuzhuDlg::OnCbnSelchangeComboPlantsId)
	ON_BN_CLICKED(IDC_BUTTON_FULL_BOM, &CzwdzjsfuzhuDlg::OnBnClickedButtonFullBom)
	ON_BN_CLICKED(IDC_CHECK_CLEAR_PAUSE, &CzwdzjsfuzhuDlg::OnBnClickedCheckClearPause)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_CHECK_AUTO_KILL, &CzwdzjsfuzhuDlg::OnBnClickedCheckAutoKill)
END_MESSAGE_MAP()

// CzwdzjsfuzhuDlg 消息处理程序
//初始化对话框
BOOL CzwdzjsfuzhuDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	
	// 设置此对话框的图标。幸运十一选五_[官网入口]  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO: 在此添加额外的初始化代码
	this->m_comboPlantsId.InsertString(0, TEXT("樱桃炸弹"));
	this->m_comboPlantsId.SetCurSel(0);
	
	this->m_hEvent = CreateEvent(NULL, FALSE, TRUE, NULL);
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

//绘制背景
void CzwdzjsfuzhuDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CzwdzjsfuzhuDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

//获取进程句柄
void CzwdzjsfuzhuDlg::GetProcessHandle()
{
	DWORD processId;

	this->m_hWnd = ::FindWindow(NULL, TEXT("Plants vs. Zombies 1.2.0.1073 RELEASE"));
	GetWindowThreadProcessId(this->m_hWnd, &processId);
	this->m_hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId);
}

//选中的植物ID
void CzwdzjsfuzhuDlg::OnCbnSelchangeComboPlantsId()
{
	// TODO: 在此添加控件通知处理程序代码
	CComboBox *cboBox = (CComboBox *)GetDlgItem(IDC_COMBO_PLANTS_ID);
	this->m_dwId = (UINT)cboBox->GetCurSel();
}

//读取指定进程的内存
PDWORD CzwdzjsfuzhuDlg::ReadProcessMem(HANDLE hProcess,
	PVOID pBaseAddress,
	DWORD dwNumberOfOffset, 
	PDWORD pOffsetBuffer)
{
	DWORD dwBuffer;
	PVOID pAddress;
	DWORD dwCount;

	if (hProcess == NULL || pBaseAddress == NULL || dwNumberOfOffset <= 0)
		return NULL;
	if (dwNumberOfOffset >= 1 && pOffsetBuffer == NULL)
		return NULL;
	//读取基地址
	if (!::ReadProcessMemory(hProcess, pBaseAddress, &dwBuffer, sizeof(DWORD), NULL))
		return NULL;
	//读取偏移
	for (dwCount = 0; dwCount < dwNumberOfOffset - 1; dwCount++)
	{
		pAddress = (PVOID)((*(PDWORD)&dwBuffer) + pOffsetBuffer[dwCount]);
		if (!ReadProcessMemory(hProcess, pAddress, &dwBuffer, sizeof(DWORD), NULL))
			return NULL;
	}
	return (PDWORD)((*(PDWORD)&dwBuffer) + pOffsetBuffer[dwNumberOfOffset - 1]);
}

//无限阳光
void CzwdzjsfuzhuDlg::OnBnClickedButtonSun()
{
	// TODO: 在此添加控件通知处理程序代码
	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	PDWORD pBase;
	DWORD dwSun = 9999;
	DWORD dwOffset[2] = { game_sun_offset1, game_sun_offset2 };
	
	pBase = ReadProcessMem(this->m_hProcess,
		(PVOID)game_sun_base,
		2,
		dwOffset);
	if (pBase == NULL)
		return;
	if (!WriteProcessMemory(this->m_hProcess, (PVOID)pBase, &dwSun, 4, NULL))
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;
}

//无限金币
void CzwdzjsfuzhuDlg::OnBnClickedButtonMoney()
{
	// TODO: 在此添加控件通知处理程序代码
	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	PDWORD pBase;
	DWORD dwMoney = 9999;
	DWORD dwOffset[2] = { game_money_offset1, game_money_offset2 };

	pBase = ReadProcessMem(this->m_hProcess,
		(PVOID)game_money_base,
		2,
		dwOffset);
	if (pBase == NULL)
		return;
	if (!WriteProcessMemory(this->m_hProcess, (PVOID)pBase, &dwMoney, 4, NULL))
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;
}

//无冷却时间
void CzwdzjsfuzhuDlg::OnBnClickedButtonCd()
{
	// TODO: 在此添加控件通知处理程序代码
	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	UCHAR uNOP[2] = { 0x90, 0x90 };
	
	if (!WriteProcessMemory(this->m_hProcess, (LPVOID)game_plant_no_cd_base, uNOP, 2, NULL))
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;
}

//大嘴花无CD
void CzwdzjsfuzhuDlg::OnBnClickedButtonEatingNocd()
{
	// TODO: 在此添加控件通知处理程序代码
	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	UCHAR uNOP[2] = { 0x90, 0x90 };

	if (!WriteProcessMemory(this->m_hProcess, (LPVOID)game_dazuihua_no_cd_base, uNOP, 2, NULL))
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;
}

//需要注入的植物安放函数
void CzwdzjsfuzhuDlg::InjectPlantCall(LPVOID lpThreadParameter)
{
	pParameter parameter = (pParameter)lpThreadParameter;
	DWORD plantsId = 2;
	DWORD dwX = parameter->xPos;
	DWORD dwY = parameter->yPos;

	__asm
	{
		pushad
		pushfd 

		mov edx, plantsId
		mov eax, dwY
		push -1
		push edx
		mov ecx, dwX
		push ecx
		mov edi, dword ptr ds : [game_sun_base]
		mov edi, dword ptr ds : [edi + game_sun_offset1]
		push edi
		mov ebx, game_plant_call
		call ebx

		popfd
		popad
	}	
}

//植物安放远程线程处理
void CzwdzjsfuzhuDlg::InjectRemoteFunc(LPVOID lpFuncAddress, LPVOID lpRemoteParam, DWORD dwParamSize)
{
	GetProcessHandle();
	if (this->m_hProcess == NULL || lpFuncAddress == NULL)
		return;
	PVOID pFuncVirtualAddress;
	PVOID pParamVirtualAddress;
	HANDLE hRemoteThread;

	//申请函数空间
	pFuncVirtualAddress = VirtualAllocEx(this->m_hProcess, NULL, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
	if (pFuncVirtualAddress == NULL)
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//写入函数
	if (!WriteProcessMemory(this->m_hProcess, pFuncVirtualAddress, lpFuncAddress, 4096, NULL))
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//申请附加参数空间
	pParamVirtualAddress = VirtualAllocEx(this->m_hProcess, NULL, dwParamSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
	if (pParamVirtualAddress == NULL)
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//写入附加参数
	if (!WriteProcessMemory(this->m_hProcess, pParamVirtualAddress, lpRemoteParam, dwParamSize, NULL))
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
		VirtualFreeEx(this->m_hProcess, pParamVirtualAddress, 0, MEM_RELEASE);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//执行远程线程函数
	hRemoteThread = CreateRemoteThread(this->m_hProcess, NULL, NULL, (LPTHREAD_START_ROUTINE)pFuncVirtualAddress, pParamVirtualAddress, 0, NULL);
	if (hRemoteThread == NULL)
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
		VirtualFreeEx(this->m_hProcess, pParamVirtualAddress, 0, MEM_RELEASE);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	WaitForSingleObject(hRemoteThread, INFINITE);
	VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
	VirtualFreeEx(this->m_hProcess, pParamVirtualAddress, 0, MEM_RELEASE);
	CloseHandle(hRemoteThread);
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;
}

//植物安放
void CzwdzjsfuzhuDlg::OnBnClickedButtonPlantCall()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	if (this->m_dwX > 8 || this->m_dwY > 4)
		return;
	parameter param;

	param.plantsId = this->m_dwId;
	param.xPos = this->m_dwX;
	param.yPos = this->m_dwY;
	InjectRemoteFunc(InjectPlantCall, &#182;m, sizeof(param));
}

//需要注入的全屏炸弹函数
void CzwdzjsfuzhuDlg::InjectFullBom()
{
	for (DWORD dwY = 0; dwY < 5; dwY++)
	{
		for (DWORD dwX = 0; dwX < 9; dwX++)
		{
			__asm
			{	pushad
				pushfd

				mov edx, 2
				mov eax, dwY
				push -1
				push edx
				mov ecx, dwX
				push ecx
				mov edi, dword ptr ds : [game_sun_base]
				mov edi, dword ptr ds : [edi + game_sun_offset1]
				push edi
				mov ebx, game_plant_call
				call ebx

				popfd
				popad
			}
		}
	}
}

//全屏炸弹 关键函数
void CzwdzjsfuzhuDlg::SharedFullBom()
{
	WaitForSingleObject(this->m_hEvent, INFINITE);

	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	PVOID pFuncVirtualAddress;
	HANDLE hRemoteThread;

	//申请函数空间
	pFuncVirtualAddress = VirtualAllocEx(this->m_hProcess, NULL, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
	if (pFuncVirtualAddress == NULL)
	{
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//写入函数
	if (!WriteProcessMemory(this->m_hProcess, pFuncVirtualAddress, InjectFullBom, 4096, NULL))
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	//执行远程线程函数
	hRemoteThread = CreateRemoteThread(this->m_hProcess, NULL, NULL, (LPTHREAD_START_ROUTINE)pFuncVirtualAddress, NULL, 0, NULL);
	if (hRemoteThread == NULL)
	{
		VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_DECOMMIT);
		CloseHandle(this->m_hProcess);
		this->m_hProcess = NULL;
		return;
	}
	WaitForSingleObject(hRemoteThread, INFINITE);
	VirtualFreeEx(this->m_hProcess, pFuncVirtualAddress, 0, MEM_RELEASE);
	CloseHandle(hRemoteThread);
	hRemoteThread = NULL;
	CloseHandle(this->m_hProcess);
	this->m_hProcess = NULL;

	SetEvent(this->m_hEvent);
}

//按钮全屏炸弹线程
unsigned __stdcall CzwdzjsfuzhuDlg::ButtonThread(void* pArguments)
{
	CzwdzjsfuzhuDlg *pthis = (CzwdzjsfuzhuDlg *)pArguments;

	pthis->SharedFullBom();
	return 0;
}

//按钮全屏炸弹
void CzwdzjsfuzhuDlg::OnBnClickedButtonFullBom()
{
	// TODO: 在此添加控件通知处理程序代码
	m_hButtonThread = (HANDLE)_beginthreadex(NULL, 0, (_beginthreadex_proc_type)ButtonThread, this, 0, NULL);
	WaitForSingleObject(this->m_hButtonThread, INFINITE);
	CloseHandle(m_hButtonThread);
	m_hButtonThread = NULL;
}

void CzwdzjsfuzhuDlg::ClearPause(PVOID pParamater)
{
	GetProcessHandle();
	if (this->m_hProcess == NULL)
		return;
	if (!WriteProcessMemory(this->m_hProcess, (LPVOID)game_pause_base, pParamater, 3, NULL))
	{
		CloseHandle(this->m_hProcess);
		return;
	}
	CloseHandle(this->m_hProcess);
}

//去掉游戏暂停
void CzwdzjsfuzhuDlg::OnBnClickedCheckClearPause()
{
	// TODO: 在此添加控件通知处理程序代码
	CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK_CLEAR_PAUSE);
	if (1 == pBtn->GetCheck())
	{
		UCHAR uCode[3] = { 0xC2, 0x04, 0x00 };
		ClearPause(uCode);
	}
	else 
	{
		UCHAR uCode[3] = { 0x55, 0x8B, 0xEC };
		ClearPause(uCode);
	}
}

//复选框全屏炸弹线程
unsigned __stdcall CzwdzjsfuzhuDlg::ClickedCheckThread(void* pArguments)
{
	CzwdzjsfuzhuDlg *pthis = (CzwdzjsfuzhuDlg *)pArguments;

	pthis->SharedFullBom();
	return 0;
}

//计时器
void CzwdzjsfuzhuDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	switch (nIDEvent)
	{
	case AUTO_PLANT_BOMB:
			this->m_hClickedCheckThread = (HANDLE)_beginthreadex(NULL, 0, (_beginthreadex_proc_type)ClickedCheckThread, this, 0, NULL);
			WaitForSingleObject(this->m_hClickedCheckThread, INFINITE);
			CloseHandle(this->m_hClickedCheckThread);
			this->m_hClickedCheckThread = NULL;
		break;
	}
	CDialogEx::OnTimer(nIDEvent);
}

//复选框全屏炸弹
void CzwdzjsfuzhuDlg::OnBnClickedCheckAutoKill()
{
	// TODO: 在此添加控件通知处理程序代码
	CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK_AUTO_KILL);

	if (1 == pBtn->GetCheck())
		SetTimer(AUTO_PLANT_BOMB, 3000, NULL);	
	else
	{
		KillTimer(AUTO_PLANT_BOMB);
	}
}

//退出清理工作
void CzwdzjsfuzhuDlg::OnCancel()
{
	// TODO: 在此添加专用代码和/或调用基类
	CloseHandle(this->m_hEvent);
	this->m_hEvent = NULL;
	CDialogEx::OnCancel();
}
 楼主| zsy6934702 发表于 2020-3-25 22:20
温柔的笑 发表于 2020-3-25 17:24
无cd的地址不对,你尝试自己做做,用ce查一下地址偏移,你这进程都跟我们的,你要是从网上摘的地址偏移, ...

我这个是汇编ADD指令的一条命名,他是自增然后到一定的值然后归0结束冷却,我现在还不知道跳转地址在易语言里怎么写,我改了是让他自增的数变大,然后达到秒冷却的,我把他放在植物大战僵尸根目录就可以用了,谢谢你了,一直回复我!!另外问一下从一个地址跳到另一个地址在易语言里要怎么写呢?
青鸾火凤 发表于 2020-3-25 02:36
wjwddd 发表于 2020-3-25 06:13

二楼正解,以管理员身份运行程序!
alicc 发表于 2020-3-25 06:24
权限不够。 右键易语言已管理员模式启动 再访问你源码。
vasto 发表于 2020-3-25 07:37
权限不足。
 楼主| zsy6934702 发表于 2020-3-25 09:44
alicc 发表于 2020-3-25 06:24
权限不够。 右键易语言已管理员模式启动 再访问你源码。

我用管理员身份也不可以呀
 楼主| zsy6934702 发表于 2020-3-25 09:45

用管理员身份运行了一样调试输出还是0,跟防火墙有关系么
 楼主| zsy6934702 发表于 2020-3-25 09:47
昨天晚上搞了三个多小时也没弄好,心态有点崩
温柔的笑 发表于 2020-3-25 12:03
本帖最后由 温柔的笑 于 2020-3-25 12:04 编辑

窗口建个标签,把获取到的pid写到标签上,编译成文件,然后右键以管理员身份运行再试试,前提是先打开游戏,看看进城名对不对
古月不傲 发表于 2020-3-25 12:08
zsy6934702 发表于 2020-3-25 09:47
昨天晚上搞了三个多小时也没弄好,心态有点崩

那就用那几个函数获取进程句柄 不用模块就好了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-4-6 11:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表

页面底部区域 foot.htm