|
|
|
|
|
|
|
[求助]条件断点的设置不管用?
[QUOTE=lixiaodog;542252]条件设置为:[esp+8]!=113 (以不记录WM_TIMER消息) 暂停:从不 记录表达式:从不 记录参数设为:条件[/QUOTE] 暂停程序:按条件 还有,数字是16进制的,别弄错了。 |
|
|
|
|
|
[求助]高手来看下给个思路。想几天了都。。。
如果是显示在状态栏中,试下条件断点: SendMessage, 条件: [esp+8] == SB_SETTEXT 如果是显示在其它控制中,试着下断点: SetWindowTextA 或者下条件断点 SendMessage, 条件: [esp+8] == WM_SETTEXT 如果是显示在程序自己的窗口中,则试着下断点TextOut或 DrawText 如果断下了,看堆栈中参数,如果text内容是“该帐号未注册”,说明断点正确,几次CTRL+F9就可以返回程序空间了。 |
|
|
|
[已解决][求助]keymaker使用的问题
标题已经修改已解决。 |
|
|
|
[求助]怎样用od调试DLL?
直接用OD打开dll文件,OD会自动运行loaddll.exe来加载。 |
|
[求助]汇编指令LEA意义
只学过几天汇编语言,不要胡乱说话。 在你的例子中
这条指令执行过后EAX = ESP+0x44 == 0x1044,而不是你说的0x2044。 LEA是INTEL颇为得意的一条指令(虽然大多数程序员并不以为然)。在INTEL OPTIMIZATION REFERFENCE MANUAL中,特别提到了这条指令的好处。 0.LEA指令具有单时钟周期,执行效率很高。 1.它是CPU地址生成单元参与运算的,而不是ALU参与运算的,所以在流水线上不会与上下文的算术逻辑指令产生流水相关 2.INTEL指令集中不存在很多RISC机器所具有的三操作数算术运算指令,比如像ARM的"add r0,r1,r2",而LEA指令恰好提供了同样的功能,以模拟“三元算术逻辑指令”。 举个例子,要计算两个寄存器的和,但又不想破坏原来的值,那么可以执行lea ebx ,[eax+edx], 这条指令,执行的就是 ebx = eax + edx 这条加法运算。如果用add指令,则不可能一条指令内完成。 3.在汇编语言程序设计中,在需要取得一个变量地址时,使用LEA是很方便的。而MOV指令则常常出错,因为在微软MASM汇编语法中,label和variable是不同的。 |
|
[求助]即时验证无提示如何下断求教
方法有很多,具体是哪种情况,需要多试试。 以下三个都是可以断在程序取得输入框中的字符串的值的时候,但对应不同的情况。看程序使用哪一种。 1.GetWindowTextA 条件:[esp+4] == hEdit 2.GetDlgTextA 条件:[esp+8] == itemId 3.SendMessageA 条件:[esp+8] == WM_GETTEXT 说明: 1.以上三种情况对应着大部分情况,但不是全部。 2.通常情况下不需要设条件断点,只有当下断后程序不停地暂停(特别是unicode程序,使用对应的W版本的API时),才需要设成是条件断点。 3.断下来后,可能需要很多次Ctrl+F9才能回到用户代码。 |
|
[求助]易语言的krnln能改吗?
是修改游戏吧。。。 你没找到关键地方。 易库只是个支持库,它的值是用户程序传进去的参数。 正确的做法是寻找用户程序中的关键点,然后修改。改运行库虽然有可能实现功能,但不是推荐的方法。 如果非要改易库的代码,这样改: “-39779.39”是ASCII字串,要改的“999999.99”也必须是字串。 先在内存中找个空白地方,把这个字串写入,注意结尾加个0 然后把地址记下,赋给eax即可。 注意:再次申明,修改运行库可能使程序出错!! |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值