|
|
[原创]从零编写简单的手机管家
这个确实NB,顶 |
|
|
|
|
|
从内存中加载DLL(C++)的疑问
高人,我先下下来试试先 |
|
|
从内存中加载DLL(C++)的疑问
回复12和13楼的兄弟: 理解你们的意思,是想让我用EXE直接静态编译opencv的库,这样没有dll跟着跑 可是我现在为了保护程序,防止别人逆向,我是想EXE 从服务端下载dll执行,这样dll不用落地,起码给逆向增加了难度,因为想dump内存出来也是能破的,但是这样提高了逆向的门槛 |
|
|
从内存中加载DLL(C++)的疑问
我觉得我是不是有必要潜心研究一个月的LoadLibraryA的代码,其实之前我大体看过这一部分代码,取自于ReactOS的源码,没有细看,其实大体流程和memoryMoudle差不多 1. 验证文件是否合法 2. 拷贝头部 3. 修复 imageBase 4. copy section 5. 重定位的处理 6. 修复导入表 7. 设置每个section对应不同的内存访问权限 希望有过类似经验或者对这一块非常了解的兄弟能启发小弟一下 |
|
|
从内存中加载DLL(C++)的疑问
是的,我现在就是用的静态库,内存加载DLL出的问题,用DLL库反而不会出问题 |
|
|
从内存中加载DLL(C++)的疑问
回复6楼 HHHso: 这里我的描述可能不是太准确 1. 我是引入的*.lib,如果是lib还得依赖DLL的方式,也就是编译出来后我的程序得和opencv2.4.8_core.dll这种文件放在一块儿才能执行。这种方式我试过,里面的cvColor方式是可以成功执行(这时候执行cvColor是在opencv2.4.8_core.dll里面执行的,不确定是这个dll,只是举例),不会报错的 2. 我现在期望的是,引入的lib不依赖任何DLL的文件了,也就是静态编译,编译出来后,可以不依赖任何DLL文件,这时候执行cvColor其实是在我自己的程序里面执行的,这时候会出错 |
|
|
[公告]看雪Android技术群
我才入门Android开发,希望可以一起交流 |
|
|
[求助]关于 imul
0051C8F3 - 69 D2 E8030000 - imul edx,edx 我那该死的调试工具。。。正确反汇编出来应该是 0051C8F3 - 69 D2 E8030000 - imul edx,edx,03E8h 这下就对了 |
|
|
[求助]关于 imul
不知道前后有没有相关性? 0051C8E9 - B8 D34D6210 - mov eax,10624DD3 : [00000000] 0051C8EE - F7 E6 - mul esi 0051C8F0 - C1 EA 06 - shr edx,06 0051C8F3 - 69 D2 E8030000 - imul edx,edx 0051C8F9 - 8B C6 - mov eax,esi 0051C8FB - 2B C2 - sub eax,edx 0051C8FD - 69 C0 E8040000 - imul eax,eax |
|
|
|
|
|
|
|
|
[讨论]关于恢复inline hook在不同操作系统版本和不同系统中的问题
achillis,太感谢了,能理解你的意思,再请教一下,KeServiceDescriptorTable所导出的函数表可以直接在ntoskrnl.exe里进行修复,通过重定位表 你的意思是不用管KeSericeDescriptorTableShadow,直接在win32k.sys里面修复函数表,但是函数表的地址在哪儿找? 因为导出表没有导出这些函数,如果直接通过重定位表修复了这些函数,但是我从哪里找这些函数的地址,通过对比函数头部来进行inline hook的修复? 还请赐教 |
|
|
[讨论]关于恢复inline hook在不同操作系统版本和不同系统中的问题
恩,现在用的Read可以进来了,在修复重定位表时有个疑问: KeServiceDescriptorTable 在 ntkrnlpa.exe 里面,指向函数的地址可以修复 但是 KeServiceDescriptorTableShadow 也在 ntkrnlpa.exe的内存里面,但是里面有些函数是指向win32k.sys的,根本就不是一个模块了,里面指向的函数地址怎么修复呢? |
|
|
[讨论]关于恢复inline hook在不同操作系统版本和不同系统中的问题
我自己来解答一下吧,狂读了一下PsNull的代码,思路是有了,不过代码还没有出来,没有时间 只是想把VB的代码转换成VC,不过不懂VB的我始终有中困难 加载文件进行比对的思路: 1. 把内核文件和win32k.sys加载到内存 2. 重建里面的导出函数的地址和重定位表,按当前系统实际基址进行重建 3. 和当前内核所在内存进行比对,进行inline hook的恢复也很方便 |
|
|
[讨论]关于恢复inline hook在不同操作系统版本和不同系统中的问题
rrrfff ,能不能给个简单的实例看一看,这几天看那个PsNull的代码,没有文档,直接看,有点一头雾水...... 因为我现在是恢复几类函数,一个是SSDT导出的函数,另一类是Shadow SSDT导出的函数,最后一类是在ntkrnlpa.exe里面导出了的函数。所以我需要加载两个内核文件,就是ntkrnlpa.exe和win32k.sys 比如我上面的图里面就是win32k.sys里面的函数,如果我的驱动自己加载映射到内存空间,那么基址肯定不一样,这样有些变量或者函数的地址需要重定位,那基址不一样,重定位后的这些值应该还是不一样? 不知道PsNull里面是如何实现inline hook的恢复,如果哪位想要PsNULL的代码请留下邮箱,我发给你们,还请帮忙看一下 |
|
|
[讨论]关于恢复inline hook在不同操作系统版本和不同系统中的问题
听起来有点抽象,我刚下载了PsNull的代码,听说里面有相关代码,不知道能不能请大N讲一下大概的原理和流程,我再根据代码学习一下,多谢了 |
|
|
[己解决]inline hook的恢复
我在本机上的inline hook的恢复已经做完了,但是做通用版时确实有点问题,还望指点,问题链接如下: http://bbs.pediy.com/showthread.php?t=128951 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值