|
[讨论]Make a debugger
在DRX中设置好断点好,收到EXCEPTION_SINGLE_STEP消息,然后处理了一下,然后被调试程序就不往下运行了呀?怎么才能让目标程序继续运行,除了把DRX设为0 |
|
[原创]实现QQ所有业务查询
啥原理呢???? |
|
[求助]注册系统服务达到自启动
没有自己的ServerMAIN函数? |
|
|
|
[求助]替换代码的问题
是不是就是加个PUSHAD,然后做完想做的,然后再POPAD,然后再JMP??? 函数的入口是不是有PUSH EBP...的代码,如果在函数中跳转回去了,是不是原先的代码就不能正常执行了? |
|
[原创]菜刀小试-为记事本加关闭提示框
很多消息啊,我都想知道呀,不同的消息是不同的方法吗? |
|
[原创]菜刀小试-为记事本加关闭提示框
能否问一下,怎么在消息上下断了? |
|
|
|
[求助]替换代码的问题
谢谢,再问一下能不能像五楼的那样跳转到一个函数呀?然后在函数中写JMP跳转回去?? |
|
[求助]替换代码的问题
WriteProcessMemory(ProcessHandle, MyAdr,@JmpCode, 11, nSize);是不是这句出错了呀 |
|
[求助]替换代码的问题
是不是MYADR的地址-E9地址-指令长度,可是我用OD看的时候把JMP后面的地址-E9地址-指令长度那也不是我的代码呀 |
|
[求助]替换代码的问题
改成这样的也不行,是根据API HOOK的代码改的,为啥它的就能直接跳到指定的函数呀 procedure myfunc; const retadr:integer=$006cbfbd; begin asm mov eax,fs:[00000000] jmp retadr end; end; procedure jmpmyfunc; var NewOrder:array [0..5] of Byte; JmpCode:array [0..10] of Byte; Tmp : array [0..3] of Byte; nSize:Cardinal; Dat: DWORD; const oldadr=$006cbfb7; begin Dat := DWORD(@myfunc); Move(Dat, Tmp, 4); NewOrder[0] := $e9 ; {jmp MyAdr} NewOrder[1] := Tmp[0]; NewOrder[2] := Tmp[1]; NewOrder[3] := Tmp[2]; NewOrder[4] := Tmp[3]; NewOrder[5] := $90; WriteProcessMemory(ProcessHandle, Pointer(oldadr), @NewOrder, 6, nSize); end; |
|
[求助]替换代码的问题
我根据网上的代码改的呀,怎么取偏移地址呀 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值