首页
社区
课程
招聘
这段加密代码什么意思,看了半天都看不懂啊
发表于: 2005-5-12 21:04 5963

这段加密代码什么意思,看了半天都看不懂啊

2005-5-12 21:04
5963
004A9AB8   /$  55          push ebp
004A9AB9   |.  8BEC        mov ebp,esp
004A9ABB   |.  83C4 F0     add esp,-10
004A9ABE   |.  53          push ebx
004A9ABF   |.  56          push esi
004A9AC0   |.  57          push edi
004A9AC1   |.  33C9        xor ecx,ecx
004A9AC3   |.  894D F0     mov dword ptr ss:[ebp-10],ecx
004A9AC6   |.  8955 FC     mov dword ptr ss:[ebp-4],edx
004A9AC9   |.  8BF8        mov edi,eax
004A9ACB   |.  33C0        xor eax,eax
004A9ACD   |.  55          push ebp
004A9ACE   |.  68 709B4A00 push Ip.004A9B70
004A9AD3   |.  64:FF30     push dword ptr fs:[eax]
004A9AD6   |.  64:8920     mov dword ptr fs:[eax],esp
004A9AD9   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
004A9ADC   |.  E8 7FA4F5FF call Ip.00403F60                      ;  LStrClr
004A9AE1   |.  C645 F7 00  mov byte ptr ss:[ebp-9],0                  ;  next hang
004A9AE5   |.  BB 01000000 mov ebx,1
004A9AEA   |.  33F6        xor esi,esi
004A9AEC   |.  EB 5A       jmp short Ip.004A9B48
004A9AEE   |>  85F6        /test esi,esi
004A9AF0   |.  75 18       |jnz short Ip.004A9B0A
004A9AF2   |.  33C0        |xor eax,eax
004A9AF4   |.  8A441F FF   |mov al,byte ptr ds:[edi+ebx-1]        ->这里什么意思? al附值两次?
004A9AF8   |.  8A80 BC5858>|mov al,byte ptr ds:[eax+5858BC]
004A9AFE   |.  8845 F7     |mov byte ptr ss:[ebp-9],al
004A9B01   |.  C745 F8 020>|mov dword ptr ss:[ebp-8],2
004A9B08   |.  EB 39       |jmp short Ip.004A9B43
004A9B0A   |>  8D45 F0     |lea eax,dword ptr ss:[ebp-10]
004A9B0D   |.  8B4D F8     |mov ecx,dword ptr ss:[ebp-8]  ->ecx干什么用的?
004A9B10   |.  33D2        |xor edx,edx
004A9B12   |.  8A55 F7     |mov dl,byte ptr ss:[ebp-9]
004A9B15   |.  D3E2        |shl edx,cl
004A9B17   |.  81E2 C00000>|and edx,0C0
004A9B1D   |.  33C9        |xor ecx,ecx       ->ecx干什么用的?还没用就清0了????为什么
004A9B1F   |.  8A4C1F FF   |mov cl,byte ptr ds:[edi+ebx-1]
004A9B23   |.  0FB689 BC58>|movzx ecx,byte ptr ds:[ecx+5858BC]
004A9B2A   |.  0BD1        |or edx,ecx
004A9B2C   |.  E8 D7A5F5FF |call Ip.00404108                     ;  LStrFromChar
004A9B31   |.  8B55 F0     |mov edx,dword ptr ss:[ebp-10]
004A9B34   |.  8B45 FC     |mov eax,dword ptr ss:[ebp-4]
004A9B37   |.  E8 ACA6F5FF |call Ip.004041E8                     ;  LStrCat
004A9B3C   |.  8B45 FC     |mov eax,dword ptr ss:[ebp-4]
004A9B3F   |.  8345 F8 02  |add dword ptr ss:[ebp-8],2
004A9B43   |>  46          |inc esi
004A9B44   |.  83E6 03     |and esi,3         
004A9B47   |.  43          |inc ebx
004A9B48   |>  8BC7         mov eax,edi
004A9B4A   |.  E8 91A6F5FF |call Ip.004041E0                     ;  LStrLen
004A9B4F   |.  3BD8        |cmp ebx,eax
004A9B51   |.  7F 07       |jg short Ip.004A9B5A
004A9B53   |.  807C1F FF 2>|cmp byte ptr ds:[edi+ebx-1],2E
004A9B58   |.^ 75 94       \jnz short Ip.004A9AEE
004A9B5A   |>  33C0        xor eax,eax
004A9B5C   |.  5A          pop edx
004A9B5D   |.  59          pop ecx
004A9B5E   |.  59          pop ecx
004A9B5F   |.  64:8910     mov dword ptr fs:[eax],edx
004A9B62   |.  68 779B4A00 push Ip.004A9B77
004A9B67   |>  8D45 F0     lea eax,dword ptr ss:[ebp-10]
004A9B6A   |.  E8 F1A3F5FF call Ip.00403F60
004A9B6F   \.  C3          retn


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

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
这个应该只是个字符串处理的,没有密码验证部分
2005-5-12 22:37
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
3
就是这个字符串处理不知道是什么意思了,哪位告诉帮我翻译以下,谢谢
2005-5-13 20:53
0
雪    币: 2054
活跃值: (282)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
4
九个星?厉害。
2005-5-14 10:56
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
5
dddddd
2005-5-14 17:32
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
6
dddddding~
2005-5-14 20:12
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
7
004A9AF4   |.  8A441F FF   |mov al,byte ptr ds:[edi+ebx-1]        ->这里什么意思? al附值两次?
从[edi-ebx-1]读取一个byte赋值给al
004A9AF8   |.  8A80 BC5858>|mov al,byte ptr ds:[eax+5858BC]
以al为偏移值查表,结果存到al

004A9AFE   |.  8845 F7     |mov byte ptr ss:[ebp-9],al
004A9B01   |.  C745 F8 020>|mov dword ptr ss:[ebp-8],2
004A9B08   |.  EB 39       |jmp short Ip.004A9B43
004A9B0A   |>  8D45 F0     |lea eax,dword ptr ss:[ebp-10]
004A9B0D   |.  8B4D F8     |mov ecx,dword ptr ss:[ebp-8]  ->ecx干什么用的?
为ecx赋值作为下面004A9B15处的移位记数
004A9B10   |.  33D2        |xor edx,edx
004A9B12   |.  8A55 F7     |mov dl,byte ptr ss:[ebp-9]
004A9B15   |.  D3E2        |shl edx,cl
004A9B17   |.  81E2 C00000>|and edx,0C0
004A9B1D   |.  33C9        |xor ecx,ecx       ->ecx干什么用的?还没用就清0了????为什么
ecx清零,避免的对004A9B23处查表操作的干扰
004A9B1F   |.  8A4C1F FF   |mov cl,byte ptr ds:[edi+ebx-1]
004A9B23   |.  0FB689 BC58>|movzx ecx,byte ptr ds:[ecx+5858BC]

没事多翻翻汇编书就当是复习指令也不错啊
2005-5-14 21:46
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
8
原来cl是ecx的低位啊

mov al,byte ptr ds:[eax+5858BC]
以al为偏移值查表,结果存到al

al没参与啊,怎么会是以al为偏移值查表?
2005-5-15 11:48
0
雪    币: 319
活跃值: (2459)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
9
看看:[eax+5858BC]
里面不是有EAX吗?
2005-5-15 14:08
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
10
明白!   

inc esi
and esi,3  
这句什么意思?前面有个test esi,esi ,   这个是判断什么的?

shl edx,cl
and edx,0C0

这个是什么意思?
2005-5-15 14:20
0
雪    币: 1192
活跃值: (1619)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
找本汇编语言书看看吧

inc esi    ;esi的值加1
and esi,3  ;然后和3做“与”运算,AND是一条实现逻辑与操作的双操作数指令,当二操作数的对应位都为1时,结果的对应位为1,否则为0,运算结果存放到目的操作数中。

test esi,esi         ;TEST是一条双操作数的测试指令,它对二操作数进行"与"操作,并根据结果设置状态标志位,但不改变二操作数的值。该指令常用用于检测某种条件是否满足,但又不希望改变原操作数的情况。
jnz short Ip.004A9B0A;判断esi是否为零,为零向下走,不为零则到Ip.004A9B0A

shl edx,cl ;左移,cl为左移位数,SHL(Shift Logical Left)为逻辑左移指令,每次移位操作数的最低位补0,最高位进入标志位CF。
and edx,0C0;然后和“0C0”做“与”运算
2005-5-15 17:18
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
exe
12
偶都明白了。

不过shl edx,cl   and edx,0C0 这些句子应该是编译器优化的,高级语言应该不是这样写。
2005-5-15 19:53
0
游客
登录 | 注册 方可回帖
返回
//