chinmo 发表于 2014-10-16 00:18

对汇编真是头疼啊,这一小段都不知道他的目的是什么,希望各位指点下

本帖最后由 chinmo 于 2014-10-16 01:03 编辑

7C809E8A    8A08            mov cl,byte ptr ds:
7C809E8C    40            inc eax
7C809E8D    84C9            test cl,cl
7C809E8F^ 75 F9         jnz Xkernel32.7C809E8A
7C809E91    2BC2            sub eax,edx经过之前的一些朋友提示,我得到了很多提示,也最终到了一些关键点

但对于汇编,实在搞不懂他的作用

比如上面,我是根据输入的注册码追踪到里的,比如9DE02360A7E1226E98FE1B799EF81B7990F51D7A
到了这里他就会重复的执行这段代码,应该是一个循环,
每次循环只用了注册码的一个字符, jnz Xkernel32.7C809E8A 执行到这个就返回mov cl,byte ptr ds:到这个


直到把注册码所有字符循环完一遍才执行 sub eax,edx 这句
实在不明白这段代码的作用是什么为什么要循环这个注册码呢?
我找这个的目的,就想弄懂这个软件的算法,有一些汇编实在看不懂什么作用,汇编知识太薄弱了,只能来求助各位大神了
这段代码我说下我理解的:
mov cl,byte ptr ds: ;把eax的值第一个字符传给cl
inc eax;这个我理解的意思是eax的值移位,比如原来是9DE02360A7E1226E98FE1B799EF81B7990F51D7A,移移位就成了DE02360A7E1226E98FE1B799EF81B7990F51D7A,不知道对不对
test cl,cl 这个就不太理解了,是进行and逻辑运算么?那这里结果是什么呢,
jnz Xkernel32.7C809E8A 这个就是一个跳转,不相等就跳转回到mov cl,byte ptr ds:,可是,上面那个都是cl会不相等么?


还有这段代码最后作用是什么呢?


春哥 发表于 2014-10-16 00:18

mov cl,byte ptr ds: ;把eax的值第一个字符传给cl
inc eax; EAX自加1
test cl,cl 这个是比较CL是否等于0

chinmo 发表于 2014-10-16 00:37

@Shark恒 @九幽 大神们,进来帮忙看下吧

幽灵and九幽 发表于 2014-10-16 00:49

表示看不明白你想表达什么

chinmo 发表于 2014-10-16 00:52

九幽 发表于 2014-10-16 00:49
表示看不明白你想表达什么

上面不是说了么?想知道这段代码的作用是什么,为什么要循环那个注册码,没发现他里面有什么比较的东西啊

幽灵and九幽 发表于 2014-10-16 00:54

你看你的那个地址,你确定已经进到程序里面去了吗?

幽灵and九幽 发表于 2014-10-16 00:56

你的意思是那个回跳是吧,你直接在那回跳下面一段F4跳过那个回跳

chinmo 发表于 2014-10-16 01:01

九幽 发表于 2014-10-16 00:54
你看你的那个地址,你确定已经进到程序里面去了吗?

这段代码我说下我理解的:
mov cl,byte ptr ds: ;把eax的值第一个字符传给cl
inc eax;这个我理解的意思是eax的值移位,比如原来是9DE02360A7E1226E98FE1B799EF81B7990F51D7A,移移位就成了DE02360A7E1226E98FE1B799EF81B7990F51D7A,不知道对不对
test cl,cl 这个就不太理解了,是进行and逻辑运算么?那这里结果是什么呢,
jnz Xkernel32.7C809E8A 这个就是一个跳转,不想等就跳转,可是,上面那个都是cl会不相等么?


还有这段代码最后作用是什么呢?

微笑的耗子 发表于 2014-10-16 08:45

高手全部出现{:5_189:}

chinmo 发表于 2014-10-16 10:31

扫地僧 发表于 2014-10-16 02:31
mov cl,byte ptr ds: ;把eax的值传给cl,使其标志位清空,但保留数值
inc eax;eax值+1
test cl,cl...

明白了这个,关键搞不懂他为什么要把这个注册码所有字符串循环一遍?里面也好像也没出现跟其他的比较啊,难道就只是为了把eax清空,然后重新一个赋值?如果是这样,也不要这么循环吧
页: [1] 2
查看完整版本: 对汇编真是头疼啊,这一小段都不知道他的目的是什么,希望各位指点下