首页
社区
课程
招聘
[旧帖] 帮我看下这个有什么用... 0.00雪花
发表于: 2009-8-13 23:00 3852

[旧帖] 帮我看下这个有什么用... 0.00雪花

2009-8-13 23:00
3852
014C1C23    55              push    ebp
014C1C24    8BEC            mov     ebp,esp
014C1C26    53              push    ebx
014C1C27    56              push    esi
014C1C28    57              push    edi
014C1C29    83EC 64         sub     esp,64
014C1C2C    68 231C4C01     push    014C1C23
014C1C31    31F6            xor     esi,esi
014C1C33    56              push    esi
014C1C34    56              push    esi
014C1C35    56              push    esi
014C1C36    56              push    esi
014C1C37    56              push    esi
014C1C38    56              push    esi
014C1C39    56              push    esi
014C1C3A    56              push    esi

这个是什么语言写的?

push    esi 这么多.
push    014C1C23  干什么用.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币:
能力值: (RANK: )
在线值:
发帖
回帖
粉丝
2
如果014C1C3B处是一个Call foo指令的话, 对应的代码就是
foo(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &bar)

其中 &bar = 0x14C1C23
2009-8-13 23:29
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
push    014C1C23   014C1C23是这个CALL的地址.你不会没看到吧.

每个CALL前面都是这种格式......
2009-8-13 23:47
0
雪    币: 390
活跃值: (15)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
push esi  esi是0,那应该是在堆栈获取为0的一定容量的堆栈空间,作为参数使用吧。。。
push 014c1c23 应该是压入目前过程的初地址,应该CALL里有用吧。。。
惭愧,基本概念不熟啊。。。。
2009-8-14 02:01
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没人知道吗?
2009-8-14 14:57
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1.光看这些代码没人知道它是什么语言写的
2.push esi 是将0压堆栈
push 014C1C23  自然是将这个地址压堆栈
至于到底要做什么,要看后面的代码
2009-8-14 15:56
0
雪    币: 202
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
藐是用C/C++写的吧
014C1C23    55              push    ebp         
014C1C24    8BEC            mov     ebp,esp
014C1C26    53              push    ebx
014C1C27    56              push    esi
014C1C28    57              push    edi
                                    //上面应该是VC编译器生成的函数入口
014C1C29    83EC 64         sub     esp,64           //临时变量分配用的
014C1C2C    68 231C4C01     push    014C1C23    //压入一个指针地址
014C1C31    31F6            xor     esi,esi                  //esi请0
014C1C33    56              push    esi                       //压入0,也就是NULL
014C1C34    56              push    esi                      //连续压0 ,因为push esi比push 0用的机器码要短
014C1C35    56              push    esi                     //所以优化使用push esi
014C1C36    56              push    esi
014C1C37    56              push    esi
014C1C38    56              push    esi
014C1C39    56              push    esi
014C1C3A    56              push    esi
                                                                      //下面应该是call XXXXXX
                                                                      //变C语言就是fun(0,0,....&p014C1C23)
2009-8-14 16:05
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
014C1C2C    68 231C4C01     push    014C1C23    //你没发现吗.这个就是这个CALL的地址....

014C1C23    55              push    ebp
每个CALL前面都是这样的......
2009-8-15 00:42
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
就这么一大段?
2009-8-15 00:48
0
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还真看不出是用什么语言写的
2009-8-16 13:25
0
游客
登录 | 注册 方可回帖
返回
//