首页
社区
课程
招聘
[求助]问个很菜的问题
发表于: 2007-11-1 14:01 4703

[求助]问个很菜的问题

2007-11-1 14:01
4703
W32DASM是用来反汇编的是吧

int jiaohuan(int a,int b)
{int p;
p=a;
a=b;
b=p;
printf("%d,%d",a,b);
}
int main()
{int a=2,b=3;
jiaohuan(2,3);
}
这段最基础的两数交换程序我用W32DASM反汇编看了一下,没看明白,很多指令都不明白

//********************** Start of Code in Segment: 1 **************

:0001.0000 696E74206A             imul bp, [bp+74], 6A20
:0001.0005 69616F6875             imul sp, [bx+di+6F], 7568
:0001.000A 61                     popa
:0001.000B 6E                     outsb
:0001.000C 28696E                 sub [bx+di+6E], ch
:0001.000F 7420                   je 0031
:0001.0011 61                     popa
:0001.0012 2C69                   sub al, 69
:0001.0014 6E                     outsb
:0001.0015 7420                   je 0037
:0001.0017 6229                   bound bp, [bx+di]
:0001.0019 0D0A7B                 or ax, 7B0A
:0001.001C 696E742070             imul bp, [bp+74], 7020
:0001.0021 3B0D                   cmp cx, [di]
:0001.0023 0A20                   or ah, [bx+si]
:0001.0025 703D                   jo 0064
:0001.0027 61                     popa
:0001.0028 3B0D                   cmp cx, [di]
:0001.002A 0A20                   or ah, [bx+si]
:0001.002C 61                     popa
:0001.002D 3D623B                 cmp ax, 3B62
:0001.0030 0D0A20                 or ax, 200A
:0001.0033 623D                   bound di, [di]
:0001.0035 703B                   jo 0072

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.0015(C)
|
:0001.0037 0D0A20                 or ax, 200A
:0001.003A 7072                   jo 00AE
:0001.003C 696E746628             imul bp, [bp+74], 2866
:0001.0041 2225                   and ah, [di]
:0001.0043 64                     BYTE 064h

:0001.0044 2C25                   sub al, 25
:0001.0046 64222C                 and ch, fs:[si]
:0001.0049 61                     popa
:0001.004A 2C62                   sub al, 62
:0001.004C 293B                   sub [bp+di], di
:0001.004E 0D0A7D                 or ax, 7D0A
:0001.0051 0D0A69                 or ax, 690A
:0001.0054 6E                     outsb
:0001.0055 7420                   je 0077
:0001.0057 6D                     insw
:0001.0058 61                     popa
:0001.0059 696E28290D             imul bp, [bp+28], 0D29
:0001.005E 0A7B69                 or bh, [bp+di+69]
:0001.0061 6E                     outsb
:0001.0062 7420                   je 0084

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.0025(C)
|
:0001.0064 61                     popa
:0001.0065 3D322C                 cmp ax, 2C32
:0001.0068 623D                   bound di, [di]
:0001.006A 333B                   xor di, [bp+di]
:0001.006C 0D0A20                 or ax, 200A
:0001.006F 6A69                   push 0069
:0001.0071 61                     popa

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.0035(C)
|
:0001.0072 6F                     outsw
:0001.0073 687561                 push 6175
:0001.0076 6E                     outsb

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.0055(C)
|
:0001.0077 2832                   sub [bp+si], dh
:0001.0079 2C33                   sub al, 33
:0001.007B 293B                   sub [bp+di], di
:0001.007D 0D0A7D                 or ax, 7D0A
:0001.0080 0D0A00                 or ax, 7D0A

没试过反汇编,不知道我这样的步骤对不对,是不是反汇编我上面的那小段C程序
而且这里面的好多指令我在DOS汇编时候没见过,也不知道在哪查询,请求帮助

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哪些没见过直接指出来,或用GOOGLE找嘛
2007-11-1 14:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
imul bp, [bp+74], 6A20
刚开始怎么[bp+74],,6A20又是什么意思

popa

jo

bound di, [di]

BYTE 064h

outsb

insw

都不认识
2007-11-1 15:31
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找本win32汇编看看嘛
有些东西是CPU的指令,你要多记记哦,不过用不着的东西我都不记的,呵呵~!用到了再现学
2007-11-1 21:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
CPU的指令我都不背, 先用先查
2007-11-2 09:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有时候 用DEDE查看也比较好
2007-11-2 10:50
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
用vc写调试不就直接看到汇编了
每一句汇编是什么看的很清楚
2007-11-2 11:49
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
建议楼主用od调试看汇编代码,
另外,测试程序中有个加减的运算最好-.-
2007-11-2 11:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主用W32DASM反的是源代码
2007-11-2 12:06
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
天线宝宝,你怎么一天升一次声望
2007-11-2 12:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我的回答都是回答到点子上, 别人愿意帮我加
比如这个贴子

楼主反出来的是
:0001.0000 696E74206A             imul bp, [bp+74], 6A20
:0001.0005 69616F6875             imul sp, [bx+di+6F], 7568
:0001.000A 61                     popa
:0001.000B 6E                     outsb
:0001.000C 28696E                 sub [bx+di+6E], ch
:0001.000F 7420                   je 0031
:0001.0011 61                     popa
:0001.0012 2C69                   sub al, 69

696E74206A69616F 很明显的字符串 "int jiaohuan..."
可见楼主是把源代码扔进W32DASM里了

你说我是不是回答到点子上了, 是不是比楼上那些不仔细看贴子就乱出主意的好多了?
既然这样,是不是不应该吝啬?
2007-11-2 12:13
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
才知道加声望是是点五角星加的。。。。我能点的话也帮你加,顺便注册个马甲帮自己加-。-
2007-11-2 12:37
0
雪    币: 50161
活跃值: (20615)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
13
声望在论坛规则 版里说明。
http://bbs.pediy.com/showthread.php?t=43408

1.加减声望是对帖子的内容进行评介,而不是对人。
2.加减声望为个人意向,任何人不得采用请求、索取等方式增加声望。
3.论坛系统对声望操作者的ID是保密的,仅坛主/超级版主可查看声望的操作者。
4.禁止以任何方式透露自己的加声望操作,例如在帖子中提及自己的加声望操作等!
5.不得在声望评语中提及自己的身份(减声望操作可以提及)。
6.禁止任何报复行为的扣声望。
7.禁止采用请求他人、索取、暗示他人,某种交易,小团体拉票等方式来增加声望。(欢迎其他会员举报,举报者将获得声望等奖励。)
8.禁止对无意的帖(如水帖之类的)进行加声望操作。
9.如果碰到恶意报复性扣声望请到 声望申诉版 投述。
10.禁止利用马甲增减自己或他人的声望!(马甲指一个人在本论坛使用2个或2以上的ID)
11.违反以上规则,视情况将扣除一定量的声望或取消其声望操作的资格,同时论坛会纠正不合理的声望操作。
2007-11-2 13:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你的意思是我不该仍进W32DASM?
那该怎么看那段C的反汇编代码?
具体该怎么做,因为我确实以前没有做过
请指点,谢谢!
2007-11-2 18:13
0
游客
登录 | 注册 方可回帖
返回
//