吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 965|回复: 1
收起左侧

[已解决] 小白请问debug release编译后的问题

[复制链接]
h5587686 发表于 2021-2-4 15:59
本帖最后由 h5587686 于 2021-2-6 09:43 编辑

[md]#include <windows.h>
#include<iostream>
using namespace std;
void zhuru(LPVOID p);
void InjectFunc(DWORD ID, LPVOID mFunc, LPVOID Param, DWORD ParamSize);
typedef struct PD
{
        DWORD a;
        DWORD b;
        DWORD c;
}PD,*P;
void main()
{   
        DWORD id = NULL;
        HWND hwnd = ::FindWindow(NULL, TEXT("Plants vs. Zombies"));
        GetWindowThreadProcessId(hwnd, &id);
        PD pp;
        pp.a = 2;
        pp.b = 1;
        pp.c = 3;
        InjectFunc(id, zhuru, &pp, sizeof(pp));


        

        
        

}

void InjectFunc(DWORD ID, LPVOID mFunc, LPVOID Param, DWORD ParamSize)
{
        HANDLE hp;
        LPVOID mFuncAddr;
        LPVOID ParamAddr;
        HANDLE ht;
        DWORD Byte;
        hp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ID);
        //申请内存
        mFuncAddr = VirtualAllocEx(hp, NULL, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        ParamAddr = VirtualAllocEx(hp, NULL, ParamSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        //写内存  
        bool s= WriteProcessMemory(hp, mFuncAddr, mFunc, 128, &Byte);
        bool ss= WriteProcessMemory(hp, ParamAddr, Param, ParamSize, &Byte);
        //创建远程线程
        ht = CreateRemoteThread(hp, NULL, 0, (LPTHREAD_START_ROUTINE)mFuncAddr,
                ParamAddr, 0, &Byte);
        WaitForSingleObject(ht, INFINITE); //等待线程结束
        //释放申请有内存
        VirtualFreeEx(hp, mFuncAddr, 128, MEM_RELEASE);
        VirtualFreeEx(hp, ParamAddr, ParamSize, MEM_RELEASE);
        //释放远程句柄
        CloseHandle(ht);
        CloseHandle(hp);
        
}



void  zhuru(LPVOID p)
{
        PD* lp;
        lp = (PD*)p;
        DWORD aa = (DWORD)lp->a;
        DWORD bb = (DWORD)lp->b;
        DWORD cc = (DWORD)lp->c;
        _asm {
                pushad
                pushfd
                push - 1
                push cc
                mov eax, aa
                push bb
                mov ebx, ds : [0x00755e0c]
                mov ebx, ds : [ebx + 0x868]
                push ebx
                mov edi, 0x00418D70
                call edi
                popfd
                popad

        }
}
这是植物种植CALL
为什么DEBUG运行植物大战就崩溃
但release就能正常运行

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

 楼主| h5587686 发表于 2021-2-6 09:43
我自己找到问题所在了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 07:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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