能力值:
( LV13,RANK:240 )
|
-
-
2 楼
............
楼主很强大
能问出这种问题的 不是一般人
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
mov eax, 0x0ABCD
shr eax, 5
shl eax, 5
shr eax, 5
shl eax, 5
shr eax, 5
shl eax, 5
add eax,0xD
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
见笑了,我的汇编知识很浅:)
我的问题其实是
为什么
mov eax, 0abcd
shr eax,5
不是
mov eax, 055e
shl eax,5
的逆反
如何实现逆反
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢。但你这代码重复好几次,没什么意义,还不如下面简单
mov eax, 0x0ABCD
shr eax, 5
shl eax, 5
add eax,0xD
但关键是这句add eax,0xD
为什么少了不行
比如第一句 若变成 mov eax, 0xabc3
是不是最后一句就变成了
add eax, 0x3
其实说明了shl 并不是shr的简单逆反,涉及到某个位上的数字(最后几位或者前面几位截去)的问题
|
能力值:
( LV12,RANK:400 )
|
-
-
6 楼
逻辑移位又不是循环移位。。你用ROR,ROL试试就可以了。
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
换成2进制,一看就知道了,你把原来的0,1,2,3,4这5位都移动没了,怎么可以能还原!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
这位兄弟说的在理。 以前我想当然直观认为shl跟shr 就是相反的操作,其实还是有些差别的。
其实我是要写出相关的逆反代码,才问道这么个“愚蠢” 的问题
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
假若前面eax付的值是任意hex值,由于移位数字截留的问题,那么有没有可能根据移位后的值反推出移位之前的值??我最关心的是这个问题
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
或者说下面这么一个函数 ,有没有可能写出它的逆反函数代码吗?
@lsdecode_00402820: ;<= Procedure Start
push ebx
xor eax,eax
push ebp
push esi
mov eax,08DDE6E40h
@lsdecode_00402886:
mov esi,dword ptr ds:[edx]
mov ebx,esi
mov ebp,esi
shr ebx,5
shl ebp,4
xor ebx,ebp
add ebx,esi
mov esi,eax
shr esi,0Bh
and esi,3
mov esi,dword ptr ds:[edi+esi*4]
add esi,eax
xor ebx,esi
sub dword ptr ds:[ecx],ebx
mov esi,dword ptr ds:[ecx]
mov ebx,esi
mov ebp,esi
shr ebx,5
shl ebp,4
xor ebx,ebp
add ebx,esi
add eax,061C88647h
mov esi,eax
and esi,3
mov esi,dword ptr ds:[edi+esi*4]
add esi,eax
xor ebx,esi
sub dword ptr ds:[edx],ebx
test eax,eax
jnz @lsdecode_00402886
pop esi
pop ebp
pop ebx
retn 4
|
能力值:
( LV3,RANK:25 )
|
-
-
11 楼
前面说"愚蠢"的问题,后面又问"愚蠢"的问题
你到底是懂还是不懂?
shl,shr 不可以逆反
rol,ror 可以逆反
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我懂一些,但理解的不是很透彻。上面其实我也说了shl和shr 是不可逆的,但不是完全确定。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
shl eax,8
操作将使得eax的高8位被丢弃,低8位充0。
shr eax,8
操作将使得eax的低8位被丢弃,高8位充0。
这两个操作都会给操作对象造成无法恢复的伤害,操作过后导致数据永久性丢失,不可能恢复。
shl eax,8
shr eax,8
操作的直接结果是使 eax 的高8位和低8位永久性丢失,其等效指令为:
and eax,00FFFF00
经过这样操作你能有办法恢复吗?
|
能力值:
( LV3,RANK:20 )
|
-
-
14 楼
能恢复的是循环移位,逻辑移位和算术移位是不一定的!
|