首页
社区
课程
招聘
[旧帖] [已解决]IDA 如何识别常见的系统函数 0.00雪花
发表于: 2012-5-5 15:55 2453

[旧帖] [已解决]IDA 如何识别常见的系统函数 0.00雪花

2012-5-5 15:55
2453
小弟刚开始学习,希望各位大牛指点。

我也不知道这样说对不对,具体还是看描述吧。

首先,我用vc6.0写了一个小小的控制台程序。
#include <stdio.h>
#include <WINDOWS.H>

void main()
{
	printf("Hello world !\n");
	system("pause");
}


然后用IDA打开,结果变成了
; int __cdecl main(int argc, const char **argv, const char **envp)
_main proc near
push    offset aHelloWorld ; "Hello world !\n"
call    sub_4010B6
push    offset aPause   ; "pause"
call    sub_401020
add     esp, 8
retn
_main endp

很显然的,其中一个call是printf,另一个是system,那么我们可不可以从vc6.0中提取些什么?或者用一些其他的方法,来识别这些(我也不找到叫什么的好)。这样分析程序的时候就会方便很多了。

新人第一次发帖,希望大家指点。

已经自己解决了,用pcf和sigmake把libc.lib转换成对应的sig文件后加载就可以了。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没用过IDA,帮顶一下
2012-5-6 06:46
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也是个新手,对IDA比较熟悉。可以在知道函数功能后进行改名。就这个printf和system简单的函数从函数的参数看出函数的功能。可以在call sub_xxxxxx代码时,光标定在sub_xxxxxx中,回车就进入了子程序的入口,这时就可以对子程序进行改名,然后调用的地方会自动改名。
2012-5-6 11:20
0
雪    币: 297
活跃值: (235)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
4
.text:00401010 _main           proc near               ; CODE XREF: _main_0j
.text:00401010
.text:00401010 var_40          = byte ptr -40h
.text:00401010
.text:00401010                 push    ebp
.text:00401011                 mov     ebp, esp
.text:00401013                 sub     esp, 40h
.text:00401016                 push    ebx
.text:00401017                 push    esi
.text:00401018                 push    edi
.text:00401019                 lea     edi, [ebp+var_40]
.text:0040101C                 mov     ecx, 10h
.text:00401021                 mov     eax, 0CCCCCCCCh
.text:00401026                 rep stosd
.text:00401028                 push    offset Format   ; "Hello world !\n"
.text:0040102D                 call    _printf
.text:0040102D
.text:00401032                 add     esp, 4
.text:00401035                 push    offset Command  ; "pause"
.text:0040103A                 call    _system
.text:0040103A
可能是没有SIG文件
2012-5-6 11:56
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
TKE
5
如果是Debug版,就可以正常识别,而Release版就不能。
如果你的Release版能识别,希望你能把你的sig文件传一个给我
2012-5-6 13:24
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
TKE
6
对于我们能识别的,当然可以rename,但是如果程序的函数一多了。手动分析就会变得很吃力,所以我们希望能简化这个步骤。
2012-5-6 13:25
0
游客
登录 | 注册 方可回帖
返回
//