VC内写入汇编,程序执行顺序不对,为什么?
时间:2011-07-11
来源:互联网
以下是写在一个注入的DLL对话框上的一个BOTTON按键处理程序,为什么先执行Sleep(1000);
然后在从头到底执行一次,跳过Sleep(1000);因为在DLL的钩子函数里我不知道怎么调试,
请大侠留下高招,谢谢,我已经试了几百次了,大括号应该不会套错的。谢谢
DWORD CallAddress1=0x008ef3a0;
DWORD CallAddress=0x006d44f0;
DWORD BBID=0;
DWORD FUBBID=0;
DWORD ZHUBBID=0;
DWORD fubaoflag=0;
DWORD CallAddress2=0X006D4830;
DWORD CallAddress3=0x00748620;
DWORD CallAddress4=0x00748580;
DWORD CallAddress5=0x006a66f0;
DWORD CallAddress6=0x006A6A90;
DWORD *wupingnumAddress=(DWORD*)
DWORD CallAddress7=0x006a8850
DWORD TEQIUID=0;
void CS3DHookDlg::OnButton1()
{
UpdateData(true);
DWORD Base3=*(DWORD*)(0x008cbeec);
Base3=*(DWORD*)(Base3+0x10);
Base3=*(DWORD*)(Base3+0X4*m_ZHUBAOBAO);
Base3=Base3+0x4;
DWORD *PP=(DWORD*)Base3;
DWORD ZHUBBID=*PP;
for(int a=1;a<11;a++)
{
DWORD Base10=*(DWORD*)(0x008cbeec);
Base10=*(DWORD*)(Base10+0x10);
Base10=*(DWORD*)(Base10+0X4*a);
Base10=Base10+0x4;
DWORD *ppp=(DWORD*)Base10;
FUBBID=*ppp;
__asm{
PUSH 0
PUSH FUBBID
MOV ECX,0X008CA4C0
CALL CallAddress6
}
__asm{
push 0
push FUBBID
push ZHUBBID
mov ecx,0x008ca4c0
call CallAddress5
}
DWORD WUPINGNUM=*wupingnumAddress;
DWORD Base4=*(DWORD*)(0x008cbee8);
Base4=*(DWORD*)(Base4+0x10);
Base4=*(DWORD*)(Base4+0X4*0);
Base4=Base4+0x4;
DWORD *wupingid1=(DWORD*)Base4;
TEQIUID=*wupingid1;
Sleep(1000);
__asm{
push 1
push 1
push TEQIUID
push ZHUBBID
mov ecx,0x008ca4c0
call CallAddress7
}
}
}
然后在从头到底执行一次,跳过Sleep(1000);因为在DLL的钩子函数里我不知道怎么调试,
请大侠留下高招,谢谢,我已经试了几百次了,大括号应该不会套错的。谢谢
DWORD CallAddress1=0x008ef3a0;
DWORD CallAddress=0x006d44f0;
DWORD BBID=0;
DWORD FUBBID=0;
DWORD ZHUBBID=0;
DWORD fubaoflag=0;
DWORD CallAddress2=0X006D4830;
DWORD CallAddress3=0x00748620;
DWORD CallAddress4=0x00748580;
DWORD CallAddress5=0x006a66f0;
DWORD CallAddress6=0x006A6A90;
DWORD *wupingnumAddress=(DWORD*)
DWORD CallAddress7=0x006a8850
DWORD TEQIUID=0;
void CS3DHookDlg::OnButton1()
{
UpdateData(true);
DWORD Base3=*(DWORD*)(0x008cbeec);
Base3=*(DWORD*)(Base3+0x10);
Base3=*(DWORD*)(Base3+0X4*m_ZHUBAOBAO);
Base3=Base3+0x4;
DWORD *PP=(DWORD*)Base3;
DWORD ZHUBBID=*PP;
for(int a=1;a<11;a++)
{
DWORD Base10=*(DWORD*)(0x008cbeec);
Base10=*(DWORD*)(Base10+0x10);
Base10=*(DWORD*)(Base10+0X4*a);
Base10=Base10+0x4;
DWORD *ppp=(DWORD*)Base10;
FUBBID=*ppp;
__asm{
PUSH 0
PUSH FUBBID
MOV ECX,0X008CA4C0
CALL CallAddress6
}
__asm{
push 0
push FUBBID
push ZHUBBID
mov ecx,0x008ca4c0
call CallAddress5
}
DWORD WUPINGNUM=*wupingnumAddress;
DWORD Base4=*(DWORD*)(0x008cbee8);
Base4=*(DWORD*)(Base4+0x10);
Base4=*(DWORD*)(Base4+0X4*0);
Base4=Base4+0x4;
DWORD *wupingid1=(DWORD*)Base4;
TEQIUID=*wupingid1;
Sleep(1000);
__asm{
push 1
push 1
push TEQIUID
push ZHUBBID
mov ecx,0x008ca4c0
call CallAddress7
}
}
}
作者: zwb188cm188 发布时间: 2011-07-11
没仔细看代码,不过要调试很容易,在你想调的代码出加上
int 3
就行
int 3
就行
作者: Areslee 发布时间: 2011-07-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28