|
[讨论]看雪论坛为什么会比别的论坛要求苛刻好多呀
允许一部分人先富起来,再消灭富不起来的,最终达到共同富裕 |
|
[求助]手动脱壳遇到的麻烦
CE使用的是ReadProcessMemory。所以软件正常,很可能是你的OD被发现~ |
|
[求助]手动脱壳遇到的麻烦
OD载入代码解密什么的都还没完成,当然全都是00000啦。这里下个内存断点。解密什么的完成后再下一个执行断点,再DUMP |
|
HOOK SSDT的时候一个问题,KeServiceDescriptorTable到底是如何获取的??
写WINDOWS程序的时候 你调用一个MessageBox 你定义了没? 比如你写一句 DWORD pAddr=MessageBox; 程序跑起来 pAddr里面就是函数的地址。 keser...table也是一样的。一个导出地址而已。 |
|
[求助]第十章ShowNumber程序BUG
new的是一个数组,所以释放也是要释放一个数组。 new xx[] delete [] 一对 如果你用了 new xx[] 只用了delete 那就会释放数组的第一个元素,而不是整个数组 |
|
高分求助。文件偏移公式算法。
不就是我说的了么?? BYTE b[5]={0xe9,0x90,0x90,0x90,0x90};//第一个为0XE9代表 远JMP 后面四个随便,反正待会要改为相对偏移的 DWORD myJmp=(DWORD)JMP机器码跳到的文件偏移-5-当前要替换成JMP机器码的文件偏移; *(DWORD*)(b+1)=myJmp; 比如 我要HOOK 0x401000(当前要替换成JMP机器码的文件偏移)这个地址 跳到 0x500000(JMP机器码跳到的文件偏移) BYTE b[5]={0xe9,0x90,0x90,0x90,0x90}; DWORD myJmp=(DWORD)JMP机器码跳到的文件偏移-5-当前要替换成JMP机器码的文件偏移; 那么Myjmp=0x500000-5-0x401000=0xFEFFB; *(DWORD*)(b+1)=myJmp; 也就是从E9后一个字节开始,把跳转偏移写进去。 得到 b[5]=0XE9 0XFB 0XEF 0X0F 0X00 0XFB 0XEF 0X0F 0X00 就是 0xFEFFB (内存中表示是倒的,查一下大尾和小尾) 那么看这个字节码怎么找到要跳的位置呢? JMP的地址 为0x401000 (0XE9 0XFB 0XEF 0X0F 0X00)占五个字节。 0x401000 +5=0x401005 然后+后面四位偏移 0XFB 0XEF 0X0F 0X00 0x401005+0xFEFFB=500000; 这么说如果你还不懂 那就先从一年级开始读起吧。 00401000 > /E9 FBEF0F00 JMP final.00500000 |
|
高分求助。文件偏移公式算法。
BYTE b[5]={0xe9,0x90,0x90,0x90,0x90};//第一个为0XE9代表 远JMP 后面四个随便,反正待会要改为相对偏移的 myJmp=(DWORD)MyLoadLibraryExW-5-RealLoadLibraryExw; *(DWORD*)(b+1)=myJmp; 这样得到的b里面的就是5个机器码了。 |
|
|
|
[求助]求助,怎样才能知道是谁访问了一段已知数据
如果硬断和内存断点都无法断,那一般是使用readprocessmemory。所以你看是否是使用这个API。怎么是答非所问呢 |
|
[求助]求助,怎样才能知道是谁访问了一段已知数据
有必要发三个帖子?readprocessmemory就断不到 |
|
[求助]修改DLL输出表API函数名称
不就是DLL劫持么。写个空DLL中转一下,何必这么麻烦 |
|
|
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值