首页
社区
课程
招聘
[旧帖] [求助]谁能帮我解释一下这些汇编的意思啊? 0.00雪花
发表于: 2008-9-2 14:58 3404

[旧帖] [求助]谁能帮我解释一下这些汇编的意思啊? 0.00雪花

2008-9-2 14:58
3404
00556DB5    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00556DB8    8078 02 6B      CMP BYTE PTR DS:[EAX+2],6B
00556DBC    75 57           JNZ SHORT 1?00556E15
00556DBE    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00556DC1    8078 04 6F      CMP BYTE PTR DS:[EAX+4],6F
00556DC5    75 4E           JNZ SHORT 1?00556E15
00556DC7    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00556DCA    8078 08 32      CMP BYTE PTR DS:[EAX+8],32
00556DCE    75 45           JNZ SHORT 1?00556E15
00556DD0    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00556DD3    8078 06 39      CMP BYTE PTR DS:[EAX+6],39
00556DD7    75 3C           JNZ SHORT 1?00556E15

cmp那里。我不明白是什么意思。能详细解释解释吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就是比较DS:[EAX+2]地址的值和6B,如果不等就跳,下面一样
2008-9-2 15:12
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
DS:[EAX+2]  这里不明白啊,是EXA当前值+2 ??
2008-9-2 15:17
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
00556DB5: 把堆栈地址EBP-4 里的内容给EAX,相当于C里的EAX=*(EBP-4),
00556DB8:将处于EAX地址的第三个字符与0X6B相比较,相当于C里的
if (eax[2] != 0x68)
    goto    00556E15
以下类似
2008-9-2 15:19
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢楼上的,  EAX+2 是第三个字符    那EAX+4是第5个了??
2008-9-2 15:51
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
应该是DS:下的EAX+2所得值的地址。(书上叫间接寻址)
2008-9-2 16:00
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
自己写了一个,差不多的,虽然不完全一样。。。
#include <stdio.h>

int getresult(unsigned char *aKey)
{
	unsigned char *key = aKey;
	if (key[2]==0x6B && key[4]==0x6F && key[8]==0x32 && key[6]==0x39)
	{
		// *key = "??k?o?9?2......"
		return 1;
	}

	return 0;
}

int main(int argc, char* argv[])
{
	char *kkk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	int result = getresult((unsigned char *) kkk);
	printf("result=%d\n", result);
	return 0;
}


00401050  /$  55            push    ebp
00401051  |.  8BEC          mov     ebp, esp
00401053  |.  83EC 08       sub     esp, 8
00401056  |.  C745 FC DC204>mov     dword ptr [ebp-4], 004020DC      ;  ASCII "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
0040105D  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00401060  |.  50            push    eax                              ; /Arg1
00401061  |.  E8 9AFFFFFF   call    00401000                         ; \Test001.00401000
00401066  |.  83C4 04       add     esp, 4
00401069  |.  8945 F8       mov     dword ptr [ebp-8], eax
0040106C  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]
0040106F  |.  51            push    ecx                              ; /<%d>
00401070  |.  68 F8204000   push    004020F8                         ; |format = "result=%d",LF,""
00401075  |.  FF15 9C204000 call    dword ptr [<&MSVCR80.printf>]    ; \printf
0040107B  |.  83C4 08       add     esp, 8
0040107E  |.  33C0          xor     eax, eax
00401080  |.  8BE5          mov     esp, ebp
00401082  |.  5D            pop     ebp
00401083  \.  C3            retn

00401000  /$  55            push    ebp
00401001  |.  8BEC          mov     ebp, esp
00401003  |.  51            push    ecx
00401004  |.  8B45 08       mov     eax, dword ptr [ebp+8]
00401007  |.  8945 FC       mov     dword ptr [ebp-4], eax
0040100A  |.  8B4D FC       mov     ecx, dword ptr [ebp-4]
0040100D  |.  0FB651 02     movzx   edx, byte ptr [ecx+2]
00401011  |.  83FA 6B       cmp     edx, 6B
00401014  |.  75 2B         jnz     short 00401041
00401016  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00401019  |.  0FB648 04     movzx   ecx, byte ptr [eax+4]
0040101D  |.  83F9 6F       cmp     ecx, 6F
00401020  |.  75 1F         jnz     short 00401041
00401022  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
00401025  |.  0FB642 08     movzx   eax, byte ptr [edx+8]
00401029  |.  83F8 32       cmp     eax, 32
0040102C  |.  75 13         jnz     short 00401041
0040102E  |.  8B4D FC       mov     ecx, dword ptr [ebp-4]
00401031  |.  0FB651 06     movzx   edx, byte ptr [ecx+6]
00401035  |.  83FA 39       cmp     edx, 39
00401038  |.  75 07         jnz     short 00401041

0040103A  |.  B8 01000000   mov     eax, 1
0040103F  |.  EB 02         jmp     short 00401043
00401041  |>  33C0          xor     eax, eax
00401043  |>  8BE5          mov     esp, ebp
00401045  |.  5D            pop     ebp
00401046  \.  C3            retn
2008-9-2 16:07
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
因为是和8位数相比较,所以低8位就行了
不是有BYTE吗
2008-9-2 16:08
0
游客
登录 | 注册 方可回帖
返回
//