揰掵佲 发表于 2015-1-7 08:44:48

梦三国D3D全图源码

..真的非常非常垃圾 编码习惯也不是很好 不喜勿下
注入啊d3d的sdk啊什么直接百度一下就行了 很简单的


//再次声明!!!代码非常丑!!做好心理准备!!! **** Hidden Message *****



//By Jocleys 27/05/2014 @ zhihu.com

#include "stdafx.h"
#include "d3d9.h"
#include "D3dx9core.h"
#include "Bgod.h"
#include "VMProtectSDK.h"
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
//定义颜色
#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b)
//
//HOOK 变量区
HWND GameHwnd;
DWORD dw_retAdd;
int i_timetogo=0;
int x;
LPDIRECT3D9 m_pD3D=NULL;
//end
//字体变量区
ID3DXFont* f_dian;
ID3DXFont* f_id;
ID3DXFont* f_welcome;
ID3DXFont* f_deng;
ID3DXFont* f_box;
//

//测试 娱乐模式全图函数变量区
RECT re_main;//游戏窗口句柄
DWORD dw_acbase=0x166c440;//人物基质 15679c4 155E754
DWORD dw_31acbase=0x166c440;//31版本人物基质
DWORD dw_base_eng;
int banben;
float f_watchax;
float f_watchay;
float f_watchx;
float f_watchy;
int i_watchax=0;
int i_watchay=0;
int i_watchx=0;
int i_watchy=0;
char ch_watchax;
char ch_watchay;
char ch_watchx;
char ch_watchy;
DWORD dw_base_eng1=0x0C0C40;
DWORD dw_31base_eng1=0x0C0C40; //31版本
DWORD dw_dengbase=0x15d3afc;
DWORD dw_bossbase=0x15d39c8;
float f_bx;
float f_by;
char* ch_bid;
int myBRectx;
int myBRecty;
int i_many=0;//参展人数
bool b_flase=true;//是否继续扫描人数总量
float ac_x=0;//整数人物X 如果为-1 则说明到尽头了
float ac_y=0;
float ac_hp=0;
float ac_mp=0;
int i_index=0;//游戏数组下表
int i_drawx;//测试用画图坐标
char st[]="●";
char st1[]="比赛尚未开始!";
int r_many;//读取出来的
char ch_r_many;
int i_ac_x;
int i_ac_y;
int color;
char ch_a;
char ch_r;
char ch_g;
char ch_sys;
int sys=0;
char ch_dianh;
int dianh;
char ch_dianw;
int dianw;
int myDRectx;
int myDRecty;
float d_x=0;
float d_y=0;
int bgchangey;
//
//画图函数 重要!
int retchar(char* c1,char* c2)
{
        if ((CString)c1==(CString)c2)
        {
                return 0;
        }return 1;
}
ID3DXFont* _stdcall CreateMyFont(LPDIRECT3DDEVICE9 pDxdevice,int model)
{

//        pDxdevice->BeginScene();//开始绘制
        //
        //
        D3DXFONT_DESCA lf;
        ZeroMemory(&lf, sizeof(D3DXFONT_DESCA));
        if (model==1)
        {
                lf.Height = 16; //字体高度
                lf.Width = 8; // 字体宽度
                lf.Weight = 100;
        }
        if(model==2){
                lf.Height = 20; //字体高度
                lf.Width =10; // 字体宽度
                lf.Weight = 100;
        }
        if(model==3){
                lf.Height = 20; //字体高度
                lf.Width =10; // 字体宽度
                lf.Weight = 100;
        }
        if (model==4)
        {
                lf.Height = 16; //字体高度
                lf.Width =8; // 字体宽度
                lf.Weight = 100;
        }
       
        lf.Italic = false;
        lf.CharSet = DEFAULT_CHARSET;
        if (sys==1)
        {
                strcpy(lf.FaceName, "宋体");

        }else strcpy(lf.FaceName, "微软雅黑"); // 字型
        ID3DXFont* font=NULL;
        if(D3D_OK!=D3DXCreateFontIndirect(pDxdevice, &lf, &font)) //创建字体对象
                return 0;

        return font;
}
BOOL _stdcall DrawMyText123(LPDIRECT3DDEVICE9 pDxdevice,TCHAR* strText ,int nbuf,int x,int y,ID3DXFont* myFont,int colorINT)
{

        RECT myrect;
        myrect.top=y;//文本块的y坐标
        myrect.left=x; //文本块的左坐标
        myrect.right=500+myrect.left;
        myrect.bottom=500+myrect.top;

        pDxdevice->BeginScene();//开始绘制
        switch(colorINT){
        case 1:        myFont->DrawText(NULL,strText,nbuf,&myrect, DT_TOP | DT_LEFT,D3DCOLOR_XRGB(255,0,0));break;
        case 2: myFont->DrawText(NULL,strText,nbuf,&myrect, DT_TOP | DT_LEFT,D3DCOLOR_XRGB(255,255,255));break;
        case 3: myFont->DrawText(NULL,strText,nbuf,&myrect, DT_TOP | DT_LEFT,D3DCOLOR_XRGB(255,255,0));break;
        case 4: myFont->DrawText(NULL,strText,nbuf,&myrect, DT_TOP | DT_LEFT,D3DCOLOR_XRGB(0,191,255));break;
        }
        pDxdevice->EndScene();
        return true;
}

//画图函数 结束!
int ssa;
char ch_chx;
char ch_chy;
int myRectx;
int myRecty;
int myHp;
int myMp;

char ch_num;
int i_real_x;//人物真坐标 x
int i_real_y;
float f_mys_x;//转换成我的屏幕上应该对应的坐标
float f_mys_y;
char ch_mys_x;
char ch_mys_y;
int i_mys_x;
int i_mys_y;
int i_wh;
char ch_wh;
char ch_name_1;
char ch_name_2;
int i_an;//取总人数的一半
char ch_many;//取ID
//测试绘图转换率!
char ch_bgmapX;
char ch_bgmapY;
int i_bgmapX;//先从X的画图开始 X还是有些不准
int i_bgmapY;
int i_smapX;
int i_smapY;
char ch_smapX;
char ch_smapY;
char ch_bgxx;
char ch_model;
int i_model;
float f_bgxx;
int i_gd_an;
int i_sgz_jici=0;//第一个人读的
int i_sgz_jici_2=0;
int idcc=56; //28
char* id;//尝试获取人名
char* ch_id;//

char* did;
char* ch_did;//灯ID
int allx;
int ally;
char basex;
char basey;
char c_allx;
char c_ally;
char cx;
char cy;
int realx;
//int clx;
int rx;
int ry;
int cl_x;//client
int cl_y;
float l123;
float l321;
char ch_hp;
char ch_mp;
char ch_hp_b;
char ch_mp_b;
int i_dindex=0;
int i_dmany=0;
bool b_dstart=true;
char ch_dx;
char ch_dy;
char* zcid="侦查*孔明灯";
char* fyid="反隐*孔明灯";
char* ch_boss1="蛤蟆老大";
char* ch_boss2="熊王黑墨";
char* ch_boss3="恶麒麟";
char* ch_boss4="冥鬼王";
char* ch_boss5="上古炎魔";
char* ch_cmpme;
char* ch_xian="_____________";
int i_gogoy;
char ch_forhp[]="Hp:";
float bgfory;
float realy;
char ch_tryy;
float f_tryy;
char ch_tryx;
float f_tryx;
char ch_bghp;
int i_bossmany;
//
int strcmp(char* sz1,char* sz2)
{
        while(*sz1++==*sz2++ && *sz1 && *sz2);

        return sz1-sz2;
}
void _stdcall bmapname(LPDIRECT3DDEVICE9 pDxdevice,int x,int y,int many)
{
                                                        _asm
                        {
                                mov eax,//大地图
                                add eax,0x8
                                mov ebx,
                                mov ,ebx
                                add eax,0x4
                                mov ebx,
                                mov ,ebx
                                addeax,0x8
                                mov ebx,
                                mov ,ebx
                                add eax,0x4
                                mov ebx,
                                mov ,ebx
                        }
                        sprintf(ch_watchax,"%f",f_watchax);
                        i_watchax=_ttoi(ch_watchax);
                        sprintf(ch_watchay,"%f",f_watchay);
                        i_watchay=_ttoi(ch_watchay);
                        sprintf(ch_watchx,"%f",f_watchx);
                        i_watchx=_ttoi(ch_watchx);
                        sprintf(ch_watchy,"%f",f_watchy);
                        i_watchy=_ttoi(ch_watchy);
                //        if(bgchangey==0)bgchangey=j_

        realx=i_watchx-(int)i_watchax/2;
        allx=realx+i_watchax;
        ally=i_watchy+i_watchay;
        if (x>realx&&x<allx)//判断坐标
        {
                if (y>i_watchy&&y<ally)
                {

                        //坐标转换测试 大-屏幕
                        //GetPrivateProfileStringA("try","x","",ch_tryx,8,"C:\\test.ini");//读取对应信息
                //        GetPrivateProfileStringA("try","y","",ch_tryy,8,"C:\\test.ini");//读取对应信息
                //        f_tryx=atof(ch_tryx);
                //        f_tryy=atof(ch_tryy);
                        rx=x-realx;
                        l123=1.000*re_main.right/f_watchax*0.94*rx;
                        ry=y-i_watchy;
                //        sprintf(basey,"%d",re_main.top);
                        sprintf(ch_bghp,"%d",myHp);
                        //i_watchay+=650;
                        l321=1.000*re_main.bottom/f_watchay*1.06*ry;
                        i_gogoy=re_main.bottom-l321+6;
                        if(i_model==2)i_gogoy+=40;
                        DrawMyText123(pDxdevice,ch_id,sizeof ch_id,l123,i_gogoy,f_id,2);
                        DrawMyText123(pDxdevice,ch_forhp,2,l123+60,i_gogoy,f_id,2);
                        if ((int)strlen(ch_bghp)>0)
                        {
                                        DrawMyText123(pDxdevice,ch_bghp,(int)strlen(ch_bghp),l123+92,i_gogoy,f_id,1);//hp
                        }

                        DrawMyText123(pDxdevice,ch_xian, (int)strlen(ch_xian),l123,i_gogoy+3,f_id,2);
                }
               
        }
}
int goY=100;
char ch_many123;
void _stdcall DrawHpMp(LPDIRECT3DDEVICE9 pDxdevice,int many)
{
          goY=1+many;
                if(many>9)many-=9;
                goY=goY*30;
                goY=goY+100;
                sprintf(ch_hp,"%d",myHp);
                sprintf(ch_mp,"%d",myMp);
                DrawMyText123(pDxdevice,ch_id,sizeof ch_id,re_main.right-150,goY,f_id,2);//id
                DrawMyText123(pDxdevice,":",1,re_main.right-110,goY,f_id,2);//点
      if ((int)strlen(ch_hp)>0&&(int)strlen(ch_mp)>0)
                {
                        DrawMyText123(pDxdevice,ch_hp,(int)strlen(ch_hp) ,re_main.right-100,goY,f_id,1);//hp
                     DrawMyText123(pDxdevice,ch_mp,(int)strlen(ch_mp),re_main.right-50,goY,f_id,3);//MP
                }

}
int i_bigsmx=0;
char ch_bigsmx;
float f_clientx;
int i_clientx;
int i_clientmodel;
int _stdcall changex(int bgx)
{
        i_clientx=0;
        GetPrivateProfileStringA("model","playone","",ch_bigsmx,6,"C:\\mscc.ini");//读取模式信息 ,1为默认 2为经典
        i_clientmodel=_ttoi(ch_bigsmx);
    if (i_clientmodel==2)
    {
                if((int)re_main.right!=1024){
                        i_clientx=(int)re_main.right-1024;
                        i_clientx=1.0000*i_clientx*0.5059+0.6;
                //        i_clientx=i_clientx+1;
                }
    }
        GetPrivateProfileStringA("model","play","",ch_model,2,"C:\\mscc.ini");//读取对应信息
        i_model=_ttoi(ch_model);
        if(i_model==1){
                i_smapX=84;
                i_bgmapX=8100;}
                if(i_model==2){
                        i_smapX=91;
                        i_bgmapX=8500;}
                if(i_model==3){
                        i_smapX=84;
                        i_bgmapX=7900;}
        if (bgx>0)//说明在1 3象限
        {               
                f_bgxx=bgx / 97;
                sprintf(ch_bgxx,"%f",f_bgxx);
                return(_ttoi(ch_bgxx)+i_smapX+i_clientx);
        }else{
                bgx=bgx*(-1);
                bgx=i_bgmapX-bgx;
                f_bgxx=bgx / 97;
                sprintf(ch_bgxx,"%f",f_bgxx);
                return(_ttoi(ch_bgxx)+i_clientx);
        }
}
int i_bigsmy=0;
char ch_bigsmy;
int _stdcall changey(int bgy)
{

        GetPrivateProfileStringA("model","play","",ch_model,2,"C:\\mscc.ini");//读取对应信息
        i_model=_ttoi(ch_model);
        if(i_model==1){
                i_smapY=100;
                i_bgmapY=9900;}
        if(i_model==2){
                i_smapY=105;
                i_bgmapY=10400;}
        if(i_model==3){
                i_smapY=105;
                i_bgmapY=10800;}
        if (bgy>0)//说明在1 3象限
        {
           // GetPrivateProfileStringA("try","y","",ch_bigsmy,6,"C:\\test.ini");//读取对应信息
          //i_bigsmy=_ttoi(ch_bigsmy);
                f_bgxx=bgy / 98;
                sprintf(ch_bgxx,"%f",f_bgxx);
                if (i_clientmodel==2)
                {
                        return(_ttoi(ch_bgxx)+i_smapY-6);
                }return(_ttoi(ch_bgxx)+i_smapY);
               
        }else{
        //        GetPrivateProfileStringA("try","x","",ch_bigsmy,6,"C:\\test.ini");//读取对应信息
          //i_bigsmy=_ttoi(ch_bigsmy);
                bgy=bgy*(-1);
                bgy=i_bgmapY-bgy;
                f_bgxx=bgy / 98;
                sprintf(ch_bgxx,"%f",f_bgxx);
                                if (i_clientmodel==2)
                {
                        return(_ttoi(ch_bgxx)-2);
                }return(_ttoi(ch_bgxx));
        }
}

void _stdcall getIMANY()
{
        i_many=0;//初始化变量
                        b_flase=true;
                        ac_x=0;
                        while (b_flase)
                        {
                                i_index=i_many*4;
                                __try
                        {
                                _asm
                                {
                                        push eax
                                        push ebx
                                        mov eax,
                                        mov eax,
                                        add eax,0x274
                                        mov eax,
                                        add eax,0x30
                                        mov eax,
                                        mov ebx,   //将数组下表传入eax
                                        add eax,ebx      //eax+index
                                        mov eax,
                                        add eax,0x44      
                                        mov ebx,
                                        add ebx,0x154
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x158
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x88 //人名
                                        mov id,ebx
                                        mov ebx,
                                        add ebx,0xAC
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0xb0
                                        mov ebx,
                                        mov ,ebx
                                                //
                                        pop ebx
                                        pop eax
                                }
                                sprintf(ch_chx,"%f",ac_x);
                                i_ac_x=_ttoi(ch_chx);
                                myRectx=i_ac_x;
                                sprintf(ch_chy,"%f",ac_y);
                                i_ac_y=_ttoi(ch_chy);
                                myRecty=i_ac_y;
                                sprintf(ch_hp_b,"%f",ac_hp);
                                myHp=_ttoi(ch_hp_b);
                                sprintf(ch_mp_b,"%f",ac_mp);
                                myMp=_ttoi(ch_mp_b);
                                ch_id=id;
                                i_many+=1;
                                                        }
                               
                                __except(EXCEPTION_EXECUTE_HANDLER)
                                {
                                        b_flase=false;
                                }

                }
}
void _stdcall getDeng()
{
      i_dmany=0;
                b_dstart=true;
                i_index=0;
                while(b_dstart)
                {
                        i_dindex=i_dmany*92+24;
                        __try{
                                _asm{
                                        push eax
                                        push ebx
                                        mov eax,
                                        mov eax,
                                        mov ebx,
                                        add eax,ebx
                                        mov eax,
                                        add eax,0x38
                                        mov ebx,
                                        add ebx,0x150
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x154
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x84
                                        mov id,ebx
                                        pop ebx
                                        pop eax
                                }
                                        sprintf(ch_dx,"%f",d_x);
                                        myDRectx=_ttoi(ch_dx);
                                        sprintf(ch_dy,"%f",d_y);
                                        myDRecty=_ttoi(ch_dy);
                                        ch_did=id;
                                        i_dmany+=1;
                        }
                        __except(EXCEPTION_EXECUTE_HANDLER)
                        {
                                b_dstart=false;
                        }
                }
}

void _stdcall getBoss()          ////////////有错误!!!!!!!!!!!!
{
      i_bossmany=0;
                b_dstart=true;
                i_index=0;
                while(b_dstart)
                {
                        i_dindex=i_bossmany*92+24;
                        __try{
                                _asm{
                                        push eax
                                        push ebx
                                        mov eax,
                                        mov eax,
                                        mov ebx,
                                        add eax,ebx
                                        mov eax,
                                        add eax,0x38
                                        mov ebx,
                                        add ebx,0x150
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x154
                                        mov ebx,
                                        mov ,ebx
                                        mov ebx,
                                        add ebx,0x84
                                        mov id,ebx
                                        pop ebx
                                        pop eax
                                }
                                        sprintf(ch_dx,"%f",f_bx);
                                        myBRectx=_ttoi(ch_dx);
                                        sprintf(ch_dy,"%f",f_by);
                                        myBRecty=_ttoi(ch_dy);
                                        ch_bid=id;
                                        i_bossmany+=1;
                        }
                        __except(EXCEPTION_EXECUTE_HANDLER)
                        {
                                b_dstart=false;
                        }
                }
}
void _stdcall YLSG(LPDIRECT3DDEVICE9 pDxdevice)//参数为设备接口
{   
             VMProtectBegin("z1");
        //SE_PROTECT_START();
                
                        getIMANY();
                //        getDeng();
                //        getBoss();
                        //大地图数据

                //        if(::FindWindowA(NULL,"大神全图")==NULL)return;//不存在就返回
                        VMProtectEnd();
                //        SE_PROTECT_END();
                sprintf(ch_many,"%d",i_many);
                GetPrivateProfileStringA("model","play","",ch_model,2,"C:\\mscc.ini");//读取对应信息
                i_model=_ttoi(ch_model);
                if (i_model==3)//官渡
                {
                        if (i_many>=3)
                {
                        while(i_many>0)
                        {
                                i_many=i_many-1;
                                i_mys_x=changex(myRectx);
                                i_mys_y=changey(myRecty);
                                DrawMyText123(pDxdevice,st,sizeof st-1,i_mys_x,(int)re_main.bottom-i_mys_y,f_dian,1);        //画点
                        }
                }

                }
                if (i_model!=3)
                {
                        if (i_many>=2)//如果有效参赛人数超过两个说明比赛开始了
                        {
                                while (i_dmany>0)
                                {
                                        i_dmany-=1;
                                        i_mys_x=changex(myDRectx);
                                        i_mys_y=changey(myDRecty);
                                        ch_cmpme=ch_did;
                                        if (retchar(ch_cmpme,zcid)==0)
                                        {
                                                DrawMyText123(pDxdevice,"△",2,i_mys_x,(int)re_main.bottom-i_mys_y,f_deng,3);
                                        }
                                        if (retchar(ch_cmpme,fyid)==0)
                                        {
                                                DrawMyText123(pDxdevice,"反",2,i_mys_x,(int)re_main.bottom-i_mys_y,f_deng,3);
                                        }
                                       

                                }
                                  while (i_bossmany>0)
                                {
                                        i_bossmany-=1;
                                        i_mys_x=changex(myBRectx);
                                        i_mys_y=changey(myBRecty);
                                               
                                                ch_cmpme=ch_bid;
                                        if(retchar(ch_cmpme,ch_boss1)==0||retchar(ch_cmpme,ch_boss2)==0||retchar(ch_cmpme,ch_boss3)==0||retchar(ch_cmpme,ch_boss4)==0||retchar(ch_cmpme,ch_boss5)==0){
                                                DrawMyText123(pDxdevice,ch_bid,4,i_mys_x,(int)re_main.bottom-i_mys_y,f_id,3);
                                        }

                                }
                                i_an=i_many / 2;                       
                                while(i_many>0)
                                {
                                        i_many-=1;
                                        GetPrivateProfileStringA("H","wh","",ch_wh,2,"C:\\mscc.ini");//读取对应信息
                                        i_wh=_ttoi(ch_wh);

                                        if (i_wh==1)
                                        {
                                                if (i_many<i_an&&i_many>=0)
                                                {
                                                        i_mys_x=changex(myRectx);
                                                        i_mys_y=changey(myRecty);
                                                //        bmapname(pDxdevice,myRectx,myRecty,i_many);
                                                        DrawMyText123(pDxdevice,ch_id,sizeof ch_id-2,i_mys_x,(int)re_main.bottom-5-i_mys_y,f_id,2);
                                                        DrawMyText123(pDxdevice,st,sizeof st-1,i_mys_x,(int)re_main.bottom-i_mys_y,f_dian,1);        //画点
                                                //        DrawHpMp(pDxdevice,i_many);
                                                }
                                        }
                                        if (i_wh==2)
                                        {
                                                if (i_many>=i_an)
                                                {
                                                        i_mys_x=changex(myRectx);
                                                        i_mys_y=changey(myRecty);
                                                //        bmapname(pDxdevice,myRectx,myRecty,i_many);                       
                                                        DrawMyText123(pDxdevice,ch_id,sizeof ch_id-2,i_mys_x,(int)re_main.bottom-5-i_mys_y,f_id,2);
                                                        DrawMyText123(pDxdevice,st,sizeof st-1,i_mys_x,(int)re_main.bottom-10-i_mys_y+10,f_dian,1);        //画点
                                                //        DrawHpMp(pDxdevice,i_many);
                                                        //这里是上方的画图
                                                }
                                        }
                                }
                        }
                }




               
                }

BOOL b_zt=true;
HDC hdc;
int i_weltime=0;
LPDIRECT3DDEVICE9 my;
char* isay="-梦三国大神辅助-";
char foryou[]="↑键切换阵营,←娱乐三国,↓官渡,→三国志";
char ch_mytime;

void __declspec(naked) QT()
{
        _asm
        {
                pushad
                mov ,eax
        }
        if (b_zt)
        {
                f_dian=CreateMyFont(my,2);
                f_id=CreateMyFont(my,1);
                f_welcome=CreateMyFont(my,3);
                f_deng=CreateMyFont(my,4);
                //f_box=CreateMyFont(my,5);
                if(f_dian!=NULL&&f_id!=NULL&&f_welcome!=NULL)b_zt=FALSE;
        }
        if (i_weltime<=3000)
        {
                i_weltime+=1;
                DrawMyText123(my,isay,(int)strlen(isay),1,50,f_welcome,3);
                DrawMyText123(my,"到期时间:",9,1,90,f_welcome        ,3);
                DrawMyText123(my,ch_mytime,sizeof ch_mytime,81,90,f_welcome,3);
                DrawMyText123(my,foryou,sizeof foryou-1,1,130,f_welcome,3);
                /*HANDLE myShhandl; //设备句柄
                myShhandl=::OpenFileMappingA(4,false,"MyShareMemoryFile");//获取句柄

                char* ch_mytxt;//char转换 指针
                LPVOID tt; //指针
                tt=MapViewOfFile(myShhandl,4,0,0,0);//读取 返回值为指针
                if (myShhandl==NULL)//如果设备部存在 信息框 no
                {
                        AfxMessageBox("No!");
                }
                //AfxMessageBox(ch_mytxt);
                ch_mytxt=(char*)tt;//普通指针转换到char指针
                DrawMyText(my,ch_mytxt,12,1,300,f_welcome,3);//写出来*/
        }
    //GetClientRect(GameHwnd,&re_main);//再次获取游戏屏幕大小
        YLSG(my);
        _asm {popad}
        _asm
        {
                mov edi,edi
                push ebp
                mov ebp,esp
                jmp
        }
}


char ch_pre;
int i_pre;
DWORD add;
char ch_banben;
DWORD dw_myqx;

void hook()
{
        VMProtectBegin("p");
        //SE_PROTECT_START();
        DeleteFileA("C:\\windows\\bg.ini");
        GameHwnd=::FindWindow(NULL,"梦三国 Online");
        GetClientRect(GameHwnd,&re_main);
        GetPrivateProfileStringA("time","my","",ch_mytime,30,"C:\\mschoco.ini");//读取对应信息
        GetPrivateProfileStringA("Pre","Add","",ch_pre,11,"C:\\mschoco.ini");//读取对应信息
                add=(DWORD)GetModuleHandle("d3d9.dll");
                dw_base_eng=(DWORD)GetModuleHandle("Engine.dll");
                dw_myqx=(DWORD)GetModuleHandle("Engine.dll");
                i_pre=_ttoi(ch_pre);
                PWORD pw_d3dhoo;
                DWORD pd_oldproc;
                PWORD pw_D3Dret;
                PWORD pw_d3dmy;
                PWORD dw_d3dmy;
                DWORD dw_d3dgobase;
                PWORD p_qxdadd;
                PWORD p_qxdadd1;

                _asm{
                        mov eax,
                        mov ebx,
                        add eax,ebx
                        mov ,eax
                        add eax,1
                        mov ,eax
                        add eax,4
                        mov ,eax
                        mov ,eax
                        mov eax,
                        mov ebx,
                        add eax,ebx
                        mov ,eax
                }               
                byte byte_jmp={0xe9};
                VirtualProtect(pw_d3dhoo,5,64,&pd_oldproc);
                memcpy(pw_d3dhoo,&byte_jmp,1);
                dw_d3dgobase=(DWORD)((DWORD)&QT-(DWORD)pw_D3Dret);
                memcpy(pw_d3dmy,&dw_d3dgobase,4);
                VirtualProtect(pw_d3dhoo,5,pd_oldproc,&pd_oldproc);
       
                VMProtectEnd();
               
        //        SE_PROTECT_END();
}

我真的是油条 发表于 2015-1-7 09:47:18

什么也看不到。。。皇帝的新源码吗,哈哈

苍天静 发表于 2015-1-7 12:14:58

这么好的资源,无条件抱走。

浴血★修罗 发表于 2015-1-7 13:43:13

支持乐易编程网
(*^__^*)

upzhu 发表于 2015-1-7 21:01:30

说好的资源呢?

124713549 发表于 2015-1-8 09:35:24

支持乐易编程网 (*^__^*)

帝天 发表于 2015-3-10 13:22:49

看看。我真的很需要这个

btaxr 发表于 2015-9-4 17:37:47

我也想了解,请大家都说说











static/image/common/sigline.gif
http://pic.yupoo.com/cjzihmxkq_v/BW3GBpl5/medium.jpg

尼基贝拉90 发表于 2016-9-17 15:28:52

往子 发表于 2017-5-23 19:09:15

学习来看看
页: [1]
查看完整版本: 梦三国D3D全图源码