看雪安全论坛

 

 

 

 


返回   看雪安全论坛 > Windows > 『软件调试逆向』
  登陆   注册  

『软件调试逆向』 [综合性论坛]本版讨论的主题包括:调试逆向、系统底层、商业保护、虚拟机保护、.NET平台等安全相关的话题。

发表新主题 回复
 
主题工具 显示模式
meteorsnow
级别:2 | 在线时长:19小时 | 升级还需:2小时级别:2 | 在线时长:19小时 | 升级还需:2小时

初级会员
初级会员

资 料:
注册日期: Oct 2011
帖子: 8 meteorsnow 品行端正
精华: 0
现金: 6 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
1 旧 2017-01-10, 22:45:10 默认 已解答: 【求助】递归函数的反汇编
meteorsnow 当前离线

附件里面的反汇编函数解释一下
上传的缩略图
2017-01-10_221730.jpg  
回复时引用此帖 返回顶端
最佳答案 - 作者: jackandkx
mov edx,dword ptr[ebp+0CH] //edx=n;
mov ecx,dword ptr[ebp+8] //ecx=a;
mov edx,dword ptr[ecx+edx*4-4] //edx=a[n-1]
add eax,edx //eax=a[n-1]+sum(a,n-1)
meteorsnow
级别:2 | 在线时长:19小时 | 升级还需:2小时级别:2 | 在线时长:19小时 | 升级还需:2小时

初级会员
初级会员

资 料:
注册日期: Oct 2011
帖子: 8 meteorsnow 品行端正
精华: 0
现金: 6 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
2 旧 2017-01-10, 23:34:53 默认
meteorsnow 当前离线

#include<stdio.h>
#define N 50
int sum(int a[],int n);
void main()
{
  int i,n,a[N];
  printf("请输入一个50以内的自然数: ");
  scanf("%d",&n);
  for(i=0;i<n;i++)
     a[i]=i+1;
    printf("前%d个自然数的和为:%d\n",n,sum(a,n));
    

}
int sum(int a[],int n)
{
  if(n<=0)
    return 0;
  else
    return a[n-1]+sum(a,n-1);
}
VC6.0反汇编得到的
回复时引用此帖 返回顶端
yzlong
级别:12 | 在线时长:202小时 | 升级还需:19小时级别:12 | 在线时长:202小时 | 升级还需:19小时级别:12 | 在线时长:202小时 | 升级还需:19小时

yzlong 的头像

初级会员
初级会员

资 料:
注册日期: Jan 2009
帖子: 39 yzlong 品行端正
精华: 0
现金: 244 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
3 旧 2017-01-11, 00:09:58 默认
yzlong 当前离线

没看懂要干啥啊, 要理解递归么?还是?
回复时引用此帖 返回顶端
我是谁!
级别:11 | 在线时长:165小时 | 升级还需:27小时级别:11 | 在线时长:165小时 | 升级还需:27小时级别:11 | 在线时长:165小时 | 升级还需:27小时级别:11 | 在线时长:165小时 | 升级还需:27小时级别:11 | 在线时长:165小时 | 升级还需:27小时

我是谁! 的头像

初级会员
初级会员

资 料:
注册日期: Apr 2015
帖子: 301 我是谁! 品行端正
精华: 0
现金: 4 Kx
致谢数: 1
获感谢文章数:4
获会员感谢数:15
4 旧 2017-01-11, 02:14:19 默认
我是谁! 当前离线

学编程好辛苦的,放弃了
回复时引用此帖 返回顶端
meteorsnow
级别:2 | 在线时长:19小时 | 升级还需:2小时级别:2 | 在线时长:19小时 | 升级还需:2小时

初级会员
初级会员

资 料:
注册日期: Oct 2011
帖子: 8 meteorsnow 品行端正
精华: 0
现金: 6 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
5 旧 2017-01-11, 16:30:00 默认
meteorsnow 当前离线

函数的反汇编看不懂
回复时引用此帖 返回顶端
meteorsnow
级别:2 | 在线时长:19小时 | 升级还需:2小时级别:2 | 在线时长:19小时 | 升级还需:2小时

初级会员
初级会员

资 料:
注册日期: Oct 2011
帖子: 8 meteorsnow 品行端正
精华: 0
现金: 6 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
6 旧 2017-01-11, 23:09:49 默认
meteorsnow 当前离线

竟然没人回答!哪儿都查不到
回复时引用此帖 返回顶端
DoItFreely
级别:5 | 在线时长:51小时 | 升级还需:9小时级别:5 | 在线时长:51小时 | 升级还需:9小时

普通会员
普通会员

资 料:
注册日期: Mar 2006
帖子: 34 DoItFreely 品行端正
精华: 3
现金: 334 Kx
致谢数: 27
获感谢文章数:1
获会员感谢数:9
7 旧 2017-01-12, 00:20:10 默认
DoItFreely 当前离线

[ebp+c]就是n啊,[ebp+8]就是a啊,C/C++从右到左的入栈顺序,不知道你想问啥。
回复时引用此帖 返回顶端
meteorsnow
级别:2 | 在线时长:19小时 | 升级还需:2小时级别:2 | 在线时长:19小时 | 升级还需:2小时

初级会员
初级会员

资 料:
注册日期: Oct 2011
帖子: 8 meteorsnow 品行端正
精华: 0
现金: 6 Kx
致谢数: 0
获感谢文章数:0
获会员感谢数:0
8 旧 2017-01-12, 20:40:34 默认
meteorsnow 当前离线

add esp,8下面三句是做什么用的?
回复时引用此帖 返回顶端
jackandkx
级别:30 | 在线时长:1053小时 | 升级还需:32小时级别:30 | 在线时长:1053小时 | 升级还需:32小时级别:30 | 在线时长:1053小时 | 升级还需:32小时级别:30 | 在线时长:1053小时 | 升级还需:32小时级别:30 | 在线时长:1053小时 | 升级还需:32小时级别:30 | 在线时长:1053小时 | 升级还需:32小时

初级会员
初级会员

资 料:
注册日期: Mar 2015
帖子: 59 jackandkx 品行端正
精华: 0
现金: 100 Kx
致谢数: 6
获感谢文章数:1
获会员感谢数:15
9 旧 2017-01-12, 21:31:27 默认
jackandkx 当前离线

mov edx,dword ptr[ebp+0CH]           //edx=n;
mov ecx,dword ptr[ebp+8]               //ecx=a;
mov edx,dword ptr[ecx+edx*4-4]     //edx=a[n-1]
add eax,edx                                     //eax=a[n-1]+sum(a,n-1)
回复时引用此帖 返回顶端
DoItFreely
级别:5 | 在线时长:51小时 | 升级还需:9小时级别:5 | 在线时长:51小时 | 升级还需:9小时

普通会员
普通会员

资 料:
注册日期: Mar 2006
帖子: 34 DoItFreely 品行端正
精华: 3
现金: 334 Kx
致谢数: 27
获感谢文章数:1
获会员感谢数:9
10 旧 2017-01-12, 22:23:30 默认
DoItFreely 当前离线

引用:
最初由 meteorsnow发布 查看帖子
add esp,8下面三句是做什么用的?
按调用规则,压到堆栈上的参数由调用者弹出,以平衡堆栈。也可以由被调用的函数出栈,但函数的声明要不同。add esp这句是出栈。

楼上已经解释清楚了。eax还包含了调用sum的返回值,所以是add eax,而不是mov eax。
此帖于 2017-01-12 22:28:22 被 DoItFreely 最后编辑 原因: 没回答问题。
回复时引用此帖 返回顶端
发表新主题 回复

添加到书签

主题工具
显示模式

发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛论坛启用 vB 代码
论坛启用 表情图标

相似的主题
主题 主题作者 论坛 回复 最后发表
技术专题 【求助】 ZJremember 『编程技术』 1 2016-11-16 00:18:25
【求助】 飞雪 『论坛版务』 0 2016-10-28 11:20:29
调试逆向 【求助】 phzhou 『软件调试逆向』 0 2016-09-27 20:31:58
【求助】【求助】【求助】 ONDragon 『软件调试逆向』 0 2016-09-14 16:02:03


所有时间均为北京时间, 现在的时间是 00:59:05.


  ©2000-2016 看雪学院(PEdiy.com) |关于我们 | 京ICP备10040895号-17 | 知道创宇提供带宽资源 | 微信公众帐号:ikanxue