|
[求助]全局变量如何修改类里的变量?
你这样做是不能修改的。你的原有的ccccc类是和ceshi函数中的ccccc类变量完全没有一点关联,他们是独立存在的,你在ceshi函数中修改ccccc变量中的aaa.aaa("sfdf")并不会对原有的ccccc类有任何影响。 你改成这样或许还可以。 ceshi(ccccc* aaa) // 将aaa作为一个ccccc类指针参数。 { ccccc aaa; //ccccc 是一个类 //这一句没用,删掉 aaa.aaa("sfdf"); // 这一句改成aaa->aaa("sfdf");应该就可以了。 } ccccc::aaa(CString xx) { m_1=xx; //m_1是一个控件的变量 UpdateData(false); } ccccc::onbutton1() { ceshi(); //这一句改成ceshi(this); } |
|
[求助]关于inlinehook的几个疑问?
//疑问一:(BYTE *)MyMessageBoxA+1 这个作何解释? MyFuncAddr = *(ULONG *)((BYTE *)MyMessageBoxA+1) + (ULONG)MyMessageBoxA + 5; 作用是跳过JMP指令的第一个字节“E9”指令来获取JMP指令后面四个字节函数地址偏移量。 //疑问二: 为什么第二个参数是10呢? VirtualProtect((LPVOID)jmp_backAddr, 10, PAGE_EXECUTE_READWRITE, &dwOldProtect); VirtualProtect的第二参数是要修改内存属性的容量的大小,并没有规定是10,用20甚至更大的数都可以。 |
|
|
|
[求助]数据类型如何转换?
masm32.lib库中有相关函数可以直接拿来用。详细信息查看masm32/help目录中的*.hlp文档。 |
|
[求助]WINAPI HOOK (修改前五个字节,JMP跳转法)为什么是五个字节?
指令的大小是根据CPU制造者有规则的设定好的。如何计算,查找Intel指令手册中有说明。 |
|
[求助]这个内联汇编应该怎么赋值?
看你的地址很可能是动态生成的,不是固定的,一般不是固定的地址一般都是使用Patch一下原程序,将这个不是固定的地址Patch到固定的地址上保存一下,然后再读取。如 patch: mov [xxxxxxx],edi ;找一个程序的空白地址保存一下这个地址。然后在内联汇编中就可以 __asm { mov eax,[xxxxxxxx] ;取得edi的地址 mov eax,[eax] ;取C4 AA 68这个值。 } |
|
[求助]WIN32编程时是不是要用到很多全局变量
一般在其它程序里要用到的值保存到全局变量比较方便。 |
|
[求助]求一本windows消息手册`!!
目前只有MSDN有详细的介绍。 |
|
[求助]我刚用VC6调试一个WIN32的EXE时发现,WinMain的参数hInstance都为4000000h,那还怎么用句柄区分不同的进程和窗口?
hWnd窗口句柄和hInstance程序实例句柄是不同的,hWnd窗口句柄只是一个只有Windows才知道其意义的窗口标识数,这个窗口句柄可以其他进程序可以通过调用相关API函数操作窗口,而hInstance程序实例句柄可以说是一个内存指针,这个指针指向当前程序加载的虚拟基地址并只对本进程有效。你可以通过这个实例指针读取PE文件各个地方的数据。 |
|
|
|
[原创]Delphi中的参数传递约定概述
关于函数调用约定网上已经有很多了,不过关于如何在Delphi中声明C的多变参数函数我还是首次看到,呵呵,学习一下。 |
|
[求助]使用VC的内联汇编问题求助
__asm { push offset exception_handler; set exception handler push dword ptr fs:[0h] mov dword ptr fs:[0h],esp xor eax,eax;reset EAX invoke int3 int 3 pop dword ptr fs:[0h];restore exception handler add esp,4 mov esp,ebp pop ebp retn exception_handler: mov eax,[esp+0xc] inc dword ptr [eax+0xb8] xor eax,eax ret 16 } |
|
[求助]请问下这个怎么做注册机~谢谢
不同的系统dll的地址不同的可能性是很大的。 |
|
[求助]请问下这个怎么做注册机~谢谢
你现在中断的位置位于msvbvm6.0.dll模块中,这个地址在别人的电脑里是有可能不同的。所以要做这个软件的注册机,你必须先从这个函数中返回到程序的领空才行。从堆栈中看,你这个函数是从00435AE0前面调用的,所以你做注册机只须从00435AE0前面中断截取就行了。所以,才叫你将00435AE0前的代码发上来看(要查看那里的代码只须使用Ctrl+G快捷键打开对话框,输入00435AE0回车就可以定位到那里的代码了。)。 |
|
[求助]请问下这个怎么做注册机~谢谢
将你程序435AE0地址前面的代码也发上来才行。 |
|
[求助]请问找到函数地址,咋去确定它的参数?
试着找mso_227函数的ret,看看这个函数的ret后面的参数是多少就可以确定这个函数带有多少个参数,如例子:retn则这个函数没有参数,ret 4则这个函数有(4/4=1)一个参数,ret 8则这个函数有(8/4=2)二个参数,ret 0C则这个函数有(0C/4=3)三个参数,后面则以(n/4=n)此类推计算函数参数个数。至于如何确定函数的参数类型则没有什么好办法,只有通过动态调试原程序是如何调用该函数的执行,从而确定函数的参数类型。 |
|
[华章公司]《Windows编程循序渐进》宣传活动,暨第一届软件设计大赛(所有奖项已揭晓)
呵呵,和上一次看雪兄办的活动差不多。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值