首页
社区
课程
招聘
菜的问题!请解答!
发表于: 2006-3-10 02:06 3929

菜的问题!请解答!

2006-3-10 02:06
3929
008A6838      8B08          MOV ECX,DWORD PTR DS:[EAX]               
008A683A      8B09          MOV ECX,DWORD PTR DS:[ECX]               

这两句表示什么意思?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
[QUOTE]最初由 Jockey 发布
008A6838      8B08          MOV ECX,DWORD PTR DS:[EAX]               
008A683A      8B09          MOV ECX,DWORD PTR DS:[ECX]               

第一句的意思是:EAX中的内容做为地址,并取出一个DWORD放
  入ECX中,
第二句是:ECX中的内容作为地址,并取出一个DWORD放入
  ECX中
2006-3-10 12:18
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
最初由 thinkSJ 发布
[QUOTE]最初由 Jockey 发布
008A6838 8B08 MOV ECX,DWORD PTR DS:[EAX]
008A683A 8B09 MOV ECX,DWORD PTR DS:[ECX]

第一句的意思是:EAX中的内容做为地址,并取出一个DWORD放
........


谢谢你的讲解,另外:像一个API函数,如:
1、spStatus = RNBOsproFindFirstUnit( ApiPacket , 0x2EB9 );
这样的函数,在汇编中表现出来的应该是怎么样的?
2、
10005EE2    50              PUSH EAX
10005EE3    51              PUSH ECX
10005EE4    57              PUSH EDI
10005EE5    E8 A63F0000     CALL sx32w.10009E90
10005EEA    5F              POP EDI
10005EEB    5E              POP ESI

这儿的push 和pop 各完成的是什么动作,请讲解一下?谢了!
2006-3-10 21:25
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
顶顶顶顶顶
2006-3-11 01:36
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
谢谢你的讲解,另外:像一个API函数,如:
1、spStatus = RNBOsproFindFirstUnit( ApiPacket , 0x2EB9 );
这样的函数,在汇编中表现出来的应该是怎么样的?

如果是汇编来写,一般像这样(但也不是绝对,有时会因编辑器和函数调用约定或个人风格不同而不同):
push 0x2EB9
push offset ApiPacket
call RNBOsproFindFirstUnit
mov spStatus,eax

2、
10005EE2    50              PUSH EAX
10005EE3    51              PUSH ECX
10005EE4    57              PUSH EDI
10005EE5    E8 A63F0000     CALL sx32w.10009E90
10005EEA    5F              POP EDI
10005EEB    5E              POP ESI

这儿的push 和pop 各完成的是什么动作,请讲解一下?谢了!

单看上面你给出的数据,是无法回答的,上面的3个push可以是环境保存,也可以说是作为Call sx32w.10009E90函数(过程)参数。下面两个POP应该是恢复(EDI和ESI)的环境。
2006-3-11 10:05
0
雪    币: 209
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
噢,应该先学一下汇编语言啊!
如果在 VC 中,调试时可以看一下反汇编窗口,你所有的代码和汇编代码都
一一对应,很有利于学习的噢!!!
2006-3-11 10:12
0
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
7

小虾兄说得很有道理 ^-^
2006-3-11 11:50
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
感激各位,小弟以前学的是VB,我所学的东西用来做破解比较困难,正想学VC++,谢谢“psusfy”兄的提点和“小虾”兄的热心帮助!

谢谢
2006-3-11 19:23
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
最初由 小虾 发布
1、spStatus = RNBOsproFindFirstUnit( ApiPacket , 0x2EB9 );
这样的函数,在汇编中表现出来的应该是怎么样的?

如果是汇编来写,一般像这样(但也不是绝对,有时会因编辑器和函数调用约定或个人风格不同而不同):
push 0x2EB9
push offset ApiPacket
call RNBOsproFindFirstUnit
mov spStatus,eax
........


想问一下的就是,返回值一定在EAX中吗,参数的顺序是倒过来push的吗?
2006-3-11 19:28
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
10
对于整数和指针类型的数据, 返回值一般都在eax中(编译器约定)
C和stdcall调用约定会把参数反过来push, 其他就不一定了
2006-3-11 22:02
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
最初由 thebutterfly 发布
对于整数和指针类型的数据, 返回值一般都在eax中(编译器约定)
C和stdcall调用约定会把参数反过来push, 其他就不一定了


谢谢

PUSH 8
这表示什么?

and EAX,off

其中的OFF=0 吗?
2006-3-13 23:54
0
游客
登录 | 注册 方可回帖
返回
//