首页
社区
课程
招聘
[求助]我只能逆向出部分代码,高手看一下
发表于: 2008-7-29 21:38 8019

[求助]我只能逆向出部分代码,高手看一下

2008-7-29 21:38
8019
00411A20  push        ebp   
00411A21  mov         ebp,esp  
00411A23  sub         esp,0E8h  
00411A29  push        ebx   
00411A2A  push        esi   
00411A2B  push        edi   
00411A2C  lea         edi,[ebp-0E8h]  
00411A32  mov         ecx,3Ah  
00411A37  mov         eax,0CCCCCCCCh  
00411A3C  rep stos    dword ptr [edi]  
00411A3E  mov         eax,dword ptr [a]  
00411A41  add         eax,dword ptr   
00411A44  mov         dword ptr [d],eax  ;int d=a+b
00411A47  mov         dword ptr [i],1      
00411A4E  mov         dword ptr [c],0  
00411A55  cmp         dword ptr [c],64h  
00411A59  jge         myfunction+46h (411A66)
00411A5B  mov         eax,dword ptr [c]  
00411A5E  add         eax,dword ptr [i]  
00411A61  mov         dword ptr [c],eax  
00411A64  jmp         myfunction+35h (411A55
00411A66  mov         eax,dword ptr [c]  
00411A69  mov         dword ptr [ebp-0E8h],eax
00411A6F  cmp         dword ptr [ebp-0E8h],0  
00411A76  je          myfunction+63h (411A83h
00411A78  cmp         dword ptr [ebp-0E8h],1  
00411A7F  je          myfunction+6Ah (411A8Ah
00411A81  jmp         myfunction+72h (411A92
00411A83  mov         dword ptr [d],1  
00411A8A  mov         eax,dword ptr [c]  
00411A8D  mov         dword ptr [d],eax  
00411A90  jmp         myfunction+79h (411A99
00411A92  mov         dword ptr [d],0  
00411A99  mov         eax,dword ptr [d]  
00411A9C  pop         edi   
00411A9D  pop         esi   
00411A9E  pop         ebx   
00411A9F  mov         esp,ebp  
00411AA1  pop         ebp   
00411AA2  ret

下面是我逆向出来的一点代码

int myfunction(int a,int b)
{
       int d=a+b;
       int i=1;
       for(c=0;c<=100;)
       {
            c=c+i;
       }
不知道这里是不是用FOR循环,
     下面的我认为可能是CASE语句
      
}

也不知道分析的对不对,希望高手帮忙看一下

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
LZ小心完美法务部
2008-7-29 22:53
0
雪    币: 218
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
这不是完美游戏的代码,是夜读天书里的一个题目
2008-7-30 00:02
0
雪    币: 218
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
不信的话,我可以把电子书放上来给你看看
2008-7-30 00:03
0
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
IDA F5
2008-7-30 00:16
0
雪    币: 218
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
十三少,能帮忙看一下吗?我不知道分析的对不对
麻烦你给指出一下吗
2008-7-30 11:14
0
雪    币: 218
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
十三少,能帮忙看一下吗?我不知道分析的对不对
麻烦你给指出一下吗
2008-7-30 11:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持下

--------------------------------------------------------------------------------------------------------------

  • The Ruby Way ebook free download
  • Learning Ruby ebook free download
  • Ruby for Rails ebook free download
  • Ruby In A Nutshell ebook free download
  • Ruby Cookbook ebook free download
  • Ruby on Rails: Up and Running ebook free download
  • Everyday Scripting with Ruby ebook free download
  • Ruby Pocket Reference ebook free download
  • Practical Ruby Gems ebook free download
  • Beginning Ruby on Rails ebook free download
  • Ruby on Rails For Dummies ebook free download
  • The Ruby Programming Language ebook free download
  • Design Patterns in Ruby ebook free download
  • The Ruby Way: Solutions and Techniques in Ruby Programming, Second Edition ebook free download
  • Practical Ruby for System Administration ebook free download
  • Beginning Ruby From Novice to Professional ebook free download
  • Ruby by Example Concepts and Code ebook free download
  • Ruby Developer’s Guide ebook free download
  • Practical Reporting with Ruby and Rails ebook free download
  • Mongrel: Serving, Deploying, and Extending Your Ruby Applications ebook free download
  • Rails Solutions: Ruby on Rails Made Easy ebook free download
  • Build Your Own Ruby on Rails Web Applications ebook free download
  • Raven Scripting Java Builds with Ruby ebook free download
  • Pro Active Record Databases with Ruby and Rails ebook free download
  • Enterprise Integration with Ruby A Pragmatic Guide ebook free download
  • Practical Ruby Projects Ideas for the Eclectic Programmer ebook free download
  • Programming Ruby The Pragmatic Programmers’ Guide ebook free download
  • Ruby on Rails for PHP and Java Developers ebook free download
  • Best of Ruby Quiz Volume One ebook free download
  • Programming Ruby: The Pragmatic Programmer's Guide ebook free download
  • Game Programming with Python, Lua, and Ruby ebook free download
  • Beginning Ruby on Rails E-Commerce From Novice to Professional ebook free download
  • Ruby on Rails Enterprise Application Development: Plan, Program, Extend ebook free download
  • Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java Platform ebook free download
  • 2008-7-30 11:35
    0
    雪    币: 116
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    9
    应该是对的,不过不知道用for和while,产生的代码区别在哪里
    2008-7-30 17:10
    0
    雪    币: 339
    活跃值: (1510)
    能力值: ( LV13,RANK:970 )
    在线值:
    发帖
    回帖
    粉丝
    10
    这东西应该就是个题目,你那代码中间虽然跳来蹦去,不过最后结果应该不变,都是个0吧?另外for跟while本来就是相通的,你也不用管他应该是啥,只要结果正确,用哪个都可以
    2008-7-30 18:22
    0
    雪    币: 1481
    活跃值: (874)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    11
    F5`````
    2008-7-30 21:48
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    12
    分析的对,后面是根据你的结果,
    ==0  d=0
    ==1  d=1
    else  d=0
    2008-7-31 00:03
    0
    雪    币: 63
    活跃值: (17)
    能力值: ( LV8,RANK:130 )
    在线值:
    发帖
    回帖
    粉丝
    13
    你分析得对

    用习惯了IDA
    再看这些没有注释的代码
    头大
    2008-7-31 15:45
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    14
    新买了《天书夜读》看到这里 试着做了下这道题:

    int fun(int a, int b)
    {
            int d = a + b;
            int i = 1;
            int c = 0;
            while(c < 100)
                    c += i;
            if(c == 0)
            {
                    d = 1;
                    d = c;
                    return d;
            }
            if(c == 1)
            {
                    d = c;
                    return d;
            }
            else
            {
                    d = 0;
                    return d;
            }
    }

    由于vc采用了[c]的方式表示变量,而不是ebp栈内寻址方式,无法分清参数与局部变量,所以我这里假设a ,b是传入的参数

    欢迎高手拍砖~~
    2008-11-5 16:21
    0
    雪    币: 202
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    15
    前面是for,后面是 一个简单的swith,如果用/02优化for也会被优化成do while
    int fun(int a, int b)
    {
      int d = a + b;int c,i;
     for( i = 1,c=0;c<100;)
         c+=i;
      swith(c)
      {
       case 0:
        d = 1;
      case 1:
       d=c;
       break;
       default:
        d = 0;
    }
        return d;
      }
    
    
    2008-11-5 18:32
    0
    雪    币: 1657
    活跃值: (291)
    能力值: ( LV9,RANK:610 )
    在线值:
    发帖
    回帖
    粉丝
    16
    LZ的代码

    基本上是,我大概看了看,估计有的地方不太对~~,我感觉LZ这样一处理汇编,我到看着别扭的很~~!

    int                myfun( int a ,int b)
    {
            unsigned long abc[0x3A] = {0};

            int        c = a + b;

            int i = 0;
            while( i < 0x64)
            {
                    i ++ ;
            }
            abc[0] = i;
            if( abc[0] ! =0 )
            {
                    if(abc[0] != 1 )
                    {
                            c = 0;
                            return c;
                    }
            }else{
                    c = 1;
            }
            c = i;
            return c;
    }
    2008-11-5 18:33
    0
    雪    币: 200
    活跃值: (46)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    17
    OD里ALT+O
    分析1
    显示函数中的参数及局部变量,很有效。
    2008-11-6 10:32
    0
    雪    币: 21
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    18
    学习中.. 太短了?
    2008-11-6 10:59
    0
    雪    币: 723
    活跃值: (81)
    能力值: ( LV9,RANK:170 )
    在线值:
    发帖
    回帖
    粉丝
    19
    LZ 的代码真乱

    int f() 
    {
       int a, b, c;
        int abc[58];
    
        int d = a + b;
        int i = 1;
    
        for ( c = 0; c < 100; c += i);
    
        abc[0] = c;
    
        if (abc[0] == 0) {
             d = 1;
             d = c;
    
        } else if (abc[0] == 1) 
         d = c;
        else 
          d = 0;
    
        return d;
    
    }


    楼上诸位
    按代码说事,a b 不会是参数呀
    2008-11-6 17:58
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    20
    请问楼上的朋友,为什么a ,b不能是参数?
    2008-11-10 18:43
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    21
    16,19楼的两位朋友:
    00411A2C  lea         edi,[ebp-0E8h]  
    00411A32  mov         ecx,3Ah  
    00411A37  mov         eax,0CCCCCCCCh  
    00411A3C  rep stos    dword ptr [edi]

    这是vc debug版将堆栈中的局部变量初始化为int 3指令的操作,应该不是在定义有58(3Ah)个元素的数组
    2008-11-10 18:48
    0
    游客
    登录 | 注册 方可回帖
    返回
    //