首页
社区
课程
招聘
在VC下怎样获得函数大小
发表于: 2006-3-14 20:53 9355

在VC下怎样获得函数大小

2006-3-14 20:53
9355
在VC下怎么获得函数的大小啊?

问题太菜,别扔砖啊~~,在Google上搜了半天搜不着

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
2
最初由 天涯浪人 发布
在VC下怎么获得函数的大小啊?


函数大小??
是不是文件大小?
DWORD GetFileSize(
  HANDLE hFile,  // handle of file to get size of
  LPDWORD lpFileSizeHigh  // pointer to high-order word for file size
);
2006-3-14 22:03
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
我想用VirtualAllocEx(),CreateRemoteThread()
VirtualAllocEx()中的dwSize怎么确定啊?

在汇编下能用SIZEOFPROC EQU $-PROCNAME,在VC下有什么伪指令可以实现同样的效果啊?
2006-3-14 22:54
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
我试了一下:
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{}
void end(){}
(UINT)uProcSize=(UINT)end-(UINT)ThreadProc;
在Release模式下可以得到ThreadProc()对齐后的大小
但Debug模式下不行,编译器有时候改变函数的位置,有时候在中间加一些附加的东西,有没有控制编译器不要在某个地方产生附加数据的预处理语句啊?
2006-3-15 08:00
0
雪    币: 214
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
把ThreadFunc和AfterThreadFunc声明为static,要么关闭编译器的“增量连接(incremental linking)”。
ThreadFunc中的局部变量总大小必须小于4k字节。注意,当debug编译时,这4k中大约有10个字节会被事先占用。

这在代码注入是要注意的问题,一般声明为static就可以了。去掉编译器的/GZ编译选项。这个选项是默认的。
2006-3-15 10:10
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
谢谢,测试成功^_^

去掉“增量连接(incremental linking)”关闭链接器的:“代码和数据的填充”和“跳转 thunk ”

去掉/GZ关闭编译器对局部变量的一些初始化操作

但是不明白static在这里起什么作用?
2006-3-15 11:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
虚心学心中。
2006-3-16 11:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 getwin 发布
虚心学心中。
2006-3-17 17:17
0
游客
登录 | 注册 方可回帖
返回
//