首页
社区
课程
招聘
[旧帖] [求助]不知道还要学什么 0.00雪花
发表于: 2011-4-15 21:54 1185

[旧帖] [求助]不知道还要学什么 0.00雪花

2011-4-15 21:54
1185
现在在学汇编。
刚才用OD载入系统自带的计算器
它首先是压栈,然后CALL
我进了CALL
到里面我一条一条的看指令,等出CALL后
我只知道这个CALL 把那几个数据压进压去。又用SUB 和CMP指令
然后把新数据压入新的寄存器中,出CALL

========================================
而我看:【分享】虚拟机完整分析  这个贴

// 将寄存器压入堆栈
   push eax
    push ebx
    push ecx
    push edx
    push esi
    push edi
    push ebp
    pushfd
    // edi -> VMContext
    // esi -> 当前字节码地址
    // ebp -> 真实堆栈
    mov    esi, [esp+0x20]      // 伪代码开始的地址
    mov     ebp, esp        // ebp保存原堆栈指针
    sub    esp, 0x200
    mov     edi, esp        // edi指向VMContext
    sub    esp, 0x40        // esp现在是vm用的堆栈了
    mov    ebx, esi        // 把伪代码base_addr做key

……
=============================================
为什么他就知道这些指令是什么意思呢,就比如他这句:  
mov    esi, [esp+0x20]      // 伪代码开始的地址
他是怎么知道这句就是伪代码开始的地址呢
---------------------------------------------
当我自己读:mov    esi, [esp+0x20]
我只知道 程序把[esp+0x20]中的内容放进了 esi 中了.别的就不知道

希望高人指点

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个,,,我是新手,我也想知道
2011-4-15 22:19
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也发现了,那些大牛貌似很轻松的就发现诸如此类的线索。。

我看了半天还是和楼主看到的东西一样,只是觉得它只是一个简单的mov指令。。。
2011-4-15 22:20
0
雪    币: 458
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯。我也想知道  知道的兄弟说下
2011-4-15 22:45
0
雪    币: 288
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我和你是一个档次的
2011-4-15 23:02
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这就是新手和大牛的区别了  我也看不懂

不过看原始寄存器都保存完了
然后跳了一段20H开始新的指令是不是就是到了伪代码处了呢 有大牛细细讲解的话就好了
2011-4-15 23:13
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
很简单,最好用C#,asp.NET,C/mfc编写一个exe文件

这个文件只有一个作用,变量赋值, a=13. b=10,c=a+b。

然后用od调试,就会看到变量赋值对应的汇编语言过程,你就会明白每一条汇编语言的作用。

其次再用高级语言写点循环程序,用od跟踪,这样就明白了汇编循环指令的意义了。

最后,写个简单的程序,比如一个 MessageBox对话框输出一句话。
分析od的汇编指令,基本就了解windows的运行机制了。

2011-4-16 00:06
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习OD和汇编的重点

你要了解这个exe程序是什么高级语言编写的
假如你学过高级语言,C,C#,asp.NET等,就必须要了解汇编语言的每一步指令就是在解释高级语言,等于是翻译官。

例如, string a;a=10;
那么汇编指令就是 mov xx 10,把10放入到寄存器xx。
2011-4-16 00:11
0
雪    币: 37
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢了
你的思路不错,我会好好努力的。
可惜我一样高级语言也不会,才学汇编……
2011-4-16 00:22
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
其实C#语言还是比较简单的,入门级别的基本都对学汇编有很大帮助。
呵呵,个人看法
2011-4-16 00:29
0
游客
登录 | 注册 方可回帖
返回
//