首页
社区
课程
招聘
[求助]求高手帮我找函数入口地址
发表于: 2012-10-25 22:11 5058

[求助]求高手帮我找函数入口地址

2012-10-25 22:11
5058
在vs2005编译的程序(release),我的目的就是查看函数myfunction在release模式下的反汇编代码。

#include "stdafx.h"

int myfunction(int a[3][3],int b[3][3],int c[3][3])
{
	int i,j;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 3; j++)
		{
			c[i][j] = a[i][0]*b[0][j] + a[i][1]*b[1][j] + a[i][2]*b[2][j];
		}
	}
	return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int a[3][3];
	int b[3][3];
	int c[3][3];
	myfunction(a,b,c[0]);
	
	return 0;
}


ida中
text:00401000 ; int __cdecl main(int argc, const char **argv, const char **envp)
.text:00401000 _main           proc near               ; CODE XREF: __tmainCRTStartup+10Ap
.text:00401000
.text:00401000 argc            = dword ptr  4
.text:00401000 argv            = dword ptr  8
.text:00401000 envp            = dword ptr  0Ch
.text:00401000
.text:00401000                 xor     eax, eax
.text:00401002                 retn
.text:00401002 _main           endp
.text:00401002


在IDA的main函数找不到myfunctiong函数调用,main函数中,ida中看到的根本就没有调用myfunction函数,请问这是为什么,请高手指教,下面是编译好的release版本的可执行文件。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
Release模式的优化导致,你传递给函数的参数数值已知且确定,只是函数返回值在编译期间计算得出,代替函数调用。
2012-10-25 22:30
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
用个messagebox,然后断点,就可以跳过编译器加上的那些乱七八糟的代码了。
2012-10-25 23:08
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
debug下找找,不过楼主啥意思,声明了,但是没初始化
2012-10-25 23:39
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
5
printf("%d", myfunction(a,b,c[0]));
2012-10-28 07:56
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
release优化得不知道哪儿去了
2012-10-28 20:53
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
7
不是优化到哪里去了,而是直接删除了。
2012-10-28 22:02
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
有个很简单的办法,在你的函数调用前加个标准的调用 如printf 等。然后OD断printf。
2012-10-28 22:29
0
雪    币: 201
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
建议楼主看一下vc  crt的源代码或者MSDN,实际上main函数是有三个参数的,你在初始化代码中很容易发现这个三参数的CALL,然后只需要几步就可以找到了。
另外也可以用一个比较简单的办法,就是在你的MYFUNC中使用嵌入汇编,比如连续嵌入5个NOP指令,然后使用OD的搜索指令序列的功能来快速定位。

希望能帮到你
2012-10-31 11:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
07的会员回来啦
2012-11-1 23:40
0
雪    币: 256
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
无意义的函数,所以删除这个函数
2012-11-2 13:17
0
游客
登录 | 注册 方可回帖
返回
//