cdygr 发表于 2008-4-6 00:22:59

下面这段更改代码不理解.

脱壳一程序,有自校验,请人帮忙解除了自校验,软件可以运行(但可能是自校验的原因,软件在"新建文件"时会弹出错误信息.
更改前的代码为:
00425610    |.5E            POP ESI                                  ;haauthor.00550970
00425611    |.0F94C1      SETE CL
00425614    |.8BC1          MOV EAX,ECX
00425616    \.C3            RETN
00425617      90            NOP
00425618      90            NOP
更改后的代码为:
00425610|.5E            POP ESI
00425611|.90            NOP
00425612|.B8 01000000   MOV EAX,1
00425617\.C3            RETN
00425618      90            NOP

我是新手,望高手解释一下上在的代码,谢谢.

[ 本帖最后由 cdygr 于 2008-4-6 00:25 编辑 ]

glassfox 发表于 2008-4-6 16:59:22

SETE/SETZ - Set if Equal / Set if Zero (386+)

其实就是把标志位设置为1

[ 本帖最后由 glassfox 于 2008-4-6 17:01 编辑 ]

cdygr 发表于 2008-4-6 20:13:04

还有没有更简单的改法呢?或者说让初学者更能理解的更改

Gue 发表于 2008-4-10 02:38:59

00425610    |.5E            POP   ESI                                  ;haauthor.00550970
00425611    |.B1 01         MOV   CL, 1
00424613    |   90            NOP
00425614    |.8BC1          MOV EAX,ECX
00425616    \.C3            RETN
00425617      90            NOP
00425618      90            NOP

只要把cl设置为1就行了..
页: [1]
查看完整版本: 下面这段更改代码不理解.