首页
社区
课程
招聘
[旧帖] 请问这段代码是什么意思?能用别的指令代替吗? 0.00雪花
发表于: 2010-10-18 10:10 3752

[旧帖] 请问这段代码是什么意思?能用别的指令代替吗? 0.00雪花

2010-10-18 10:10
3752
00401CC0  |?  FFFF          ???                                      ;  未知命令
00401CC2  |?^ 72 C6         JB SHORT panda.00401C8A
00401CC4  |?  857F FF       TEST DWORD PTR DS:[EDI-1],EDI
00401CC7  |?  FFFF          ???                                      ;  未知命令
00401CC9  |?  6F            OUTS DX,DWORD PTR ES:[EDI]               ;  I/O 命令
00401CCA  |.  C645 80 63    MOV BYTE PTR SS:[EBP-80],63              ; ||
00401CCE  |.  C645 81 65    MOV BYTE PTR SS:[EBP-7F],65              ; ||
00401CD2  |.  C645 82 73    MOV BYTE PTR SS:[EBP-7E],73              ; ||
00401CD6  |.  C645 83 73    MOV BYTE PTR SS:[EBP-7D],73              ; ||
00401CDA  |.  C645 84 4D    MOV BYTE PTR SS:[EBP-7C],4D              ; ||
00401CDE  |.  C645 85 65    MOV BYTE PTR SS:[EBP-7B],65              ; ||
00401CE2  |.  C645 86 6D    MOV BYTE PTR SS:[EBP-7A],6D              ; ||
00401CE6  |.  C645 87 6F    MOV BYTE PTR SS:[EBP-79],6F              ; ||
00401CEA  |.  C645 88 72    MOV BYTE PTR SS:[EBP-78],72              ; ||
00401CEE  |.  C645 89 79    MOV BYTE PTR SS:[EBP-77],79              ; ||
00401CF2  |.  885D 8A       MOV BYTE PTR SS:[EBP-76],BL              ; ||
00401CF5  |.  C645 A0 47    MOV BYTE PTR SS:[EBP-60],47              ; ||
00401CF9  |.  C645 A1 65    MOV BYTE PTR SS:[EBP-5F],65              ; ||
00401CFD  |.  C645 A2 74    MOV BYTE PTR SS:[EBP-5E],74              ; ||
00401D01  |.  C645 A3 54    MOV BYTE PTR SS:[EBP-5D],54              ; ||
00401D05  |.  C645 A4 68    MOV BYTE PTR SS:[EBP-5C],68              ; ||
00401D09  |.  C645 A5 72    MOV BYTE PTR SS:[EBP-5B],72              ; ||
00401D0D  |.  C645 A6 65    MOV BYTE PTR SS:[EBP-5A],65              ; ||
00401D11  |.  C645 A7 61    MOV BYTE PTR SS:[EBP-59],61              ; ||
00401D15  |.  C645 A8 64    MOV BYTE PTR SS:[EBP-58],64              ; ||
00401D19  |.  C645 A9 43    MOV BYTE PTR SS:[EBP-57],43              ; ||
00401D1D  |.  C645 AA 6F    MOV BYTE PTR SS:[EBP-56],6F              ; ||
00401D21  |.  C645 AB 6E    MOV BYTE PTR SS:[EBP-55],6E              ; ||
00401D25  |.  C645 AC 74    MOV BYTE PTR SS:[EBP-54],74              ; ||
00401D29  |.  C645 AD 65    MOV BYTE PTR SS:[EBP-53],65              ; ||
00401D2D  |.  C645 AE 78    MOV BYTE PTR SS:[EBP-52],78              ; ||
00401D31  |.  C645 AF 74    MOV BYTE PTR SS:[EBP-51],74              ; ||
00401D35  |.  885D B0       MOV BYTE PTR SS:[EBP-50],BL              ; ||
00401D38  |.  C645 8C 53    MOV BYTE PTR SS:[EBP-74],53              ; ||
00401D3C  |.  C645 8D 65    MOV BYTE PTR SS:[EBP-73],65              ; ||
00401D40  |.  C645 8E 74    MOV BYTE PTR SS:[EBP-72],74              ; ||

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可能是由c语言的switch...case编译而成的汇编代码,一般为jmp [ecx*4+基地址]的格式,后面跟的是4个字节的跳转地址表。一般为dd ....,dd....,dd....
2010-10-18 10:32
0
雪    币: 139
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
前面几个FFFF不知道是什么意思,反汇编错误?

后面的指令都好理解:
OUTS把[EDI]指向的内容输出到DX指定的端口,有可能是向屏幕打印消息(若是打印信息,可用pintf代替)
后面的MOV指令是在栈上初始化字符串。
从[ebp-80]开始,被初始化为:"cessMemory","GetThreadContext","Set.."这样的三个字符串(从代码片段猜测BL是0),这段指令可以用几个strcpy, strncpy, memccpy等代替。

///验证码输错N次才发上来。
2010-10-18 11:33
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哦,那我理解错了。
2010-10-18 11:41
0
游客
登录 | 注册 方可回帖
返回
//