作者hpyhacking (骇人听闻)
看板C_and_CPP
标题[问题] 想请问dll动态库的建立
时间Fri May 19 19:46:44 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
C语言
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Gcc
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
N
问题(Question):
最近想利用指标写dll修改程式
目标是想要主程式进行到一半进行数值修改
步骤:
1.编译dll档案,指令:gcc -shared -o change.dll change.c
#include <stdio.h>
#include <stdlib.h>
_declspec(dllexport) void change()
{
int *p = (int *)0x28ff2c;
*p = 500;
}
2.连结以及编译主程式,指令:gcc -o target.exe target.c -L. -lchange
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int num = 0;
printf("%x\n", &num);
while(1)
{
num++;
printf("\n%d", num);
Sleep(6000);
}
return 0;
}
最後我的num并没有被修改,请问是为甚麽呢@@
--
Sent from my Android
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.32.166
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1495194406.A.E67.html
1F:推 littleshan: google mingw dll05/19 23:10
2F:→ hpyhacking: 我发现我误会了……05/19 23:23
※ 编辑: hpyhacking (42.72.32.166), 05/19/2017 23:23:29
※ 编辑: hpyhacking (42.72.32.166), 05/19/2017 23:24:30
3F:推 littleshan: 看你是要 dynamic linking 还是 dynamic loading05/19 23:40
4F:→ littleshan: 编出 DLL 的时候一定会同时产生 imp library (XXX.a)05/19 23:40
5F:→ littleshan: 在编 exe 时一起 link,就会是 dynamic linking05/19 23:41
6F:→ littleshan: dynamic loading 则是用 LoadLibrary 执行时才载入05/19 23:42
7F:→ littleshan: 这些都和 IDE 没什麽关系啦,IDE 只是帮你把指令填好05/19 23:43
8F:→ hpyhacking: 我没有产生那个.a档诶…难怪失败05/20 00:09
9F:→ hpyhacking: 另外我找到有dll注入工具?那是再了解dll另外写的程05/20 00:10
10F:→ hpyhacking: 式对不对?那个也是dynamic loading罗?05/20 00:10
※ 编辑: hpyhacking (42.72.32.166), 05/20/2017 00:19:11
※ 编辑: hpyhacking (220.134.65.240), 05/20/2017 00:27:30
※ 编辑: hpyhacking (220.134.65.240), 05/20/2017 00:31:57
11F:→ hpyhacking: 然後不知道为什麽我的电脑开机後每次执行exe他的位址 05/20 00:35
12F:→ hpyhacking: 都会一样,所以程式码中的位址就直接给了 05/20 00:35
13F:推 vaio8937: 请问你要LoadLibrary,让主程式呼叫DLL的函式。还是你要 05/20 01:00
14F:→ vaio8937: DLLInjection 05/20 01:00
15F:→ vaio8937: 两个做法完全不一样 05/20 01:01
16F:→ vaio8937: 你是想要DLL附在主程式上,去hack主程式的变数吗? 05/20 01:03
17F:→ hpyhacking: Dllinjection!!!! 05/20 01:34
18F:→ hpyhacking: 我要的是dll injection 05/20 01:35
19F:→ vaio8937: 那我再另回一篇文 05/20 01:40
20F:→ hpyhacking: 感谢你,我也还在爬文章看观念 05/20 01:58
21F:→ TobyH4cker: 因为change()并没有被呼叫过啊 05/20 02:08
22F:→ hpyhacking: 我也在想怎麽呼叫rrr 05/20 10:30
23F:→ TobyH4cker: 在你的主程式宣告dllimport 然後自己呼叫 05/20 18:35
24F:→ hpyhacking: 那请问一般其他的程式并没有办法有原始码,还是要做这 05/20 19:01
25F:→ hpyhacking: 哥动作怎麽办 05/20 19:01