能力值:
( LV2,RANK:10 )
|
-
-
2 楼
写一段shellcode就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
应该可以吧
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
Goldtulip
写一段shellcode就可以了
直接把C/C++写的函数的地址传给WriteProcessMemory不行吗?
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
关于这个远程写入的代码是否只能用内联汇编来写, 核心问题在于你是否把完整的代码写入到了目标进程中. 如果你c函数中不包含外部引用, 则你拷贝过去&执行, 是不会有问题的. 这里的外部引用包括但不限于 全局变量/ api引用/ 而你若是一个c函数, 函数内仅仅几个if else for循环等语句, 就这样你拷贝到目标进程并执行是不会有问题的, 而真实情况下这样的函数能做的有限.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
LOVEJX
关于这个远程写入的代码是否只能用内联汇编来写, 核心问题在于你是否把完整的代码写入到了目标进程中.
如果你c函数中不包含外部引用, 则你拷贝过去&执行, 是不会有问题的. 这里的外部引用包括 ...
3Q!不能包含外部引用我理解。但是调用WINAPI也不可以吗?
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
BeholdSnow
3Q!不能包含外部引用我理解。但是调用WINAPI也不可以吗?
你需要先保证目标进程加载了API所在的DLL. 并且你能拿到API所在DLL的基址. 然后你可以直接通过汇编 call 基址+函数偏移 的方式, 或者定义一个函数指针 FUN_PTR a = 基址+函数偏移; 然后 a(参数1, 参数2, ...); 这种得吧. 重点在于你自己进程与目标进程的各种基址是不同的. 最简单的方式就是你需要一段汇编代码来修正, 这段汇编代码通常叫做shellcode, 以确保你注入的代码可以正常运行.
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
关键在于 你本地编译后 写入到远线程 需不需要重定位 用shellcode 可以自己构造不需要重定位的函数
|
|
|