菜鸟中的菜鸟 发表于 2014-11-19 19:52
为了把注册码保存到一个固定的位置处啊,这样,外部程序就能读取了,如果你不保存起来,怎么读取啊,因为 ...
我确实是没看懂、、你这样补了我都糊涂了
本来是ebp-78传递给ecx 你走完了这一句 也就是说ecx保存的是注册码咯?
然后你这里mov esi,ecx 传给esi 又给edi赋值、、这里我也能理解
但是后面哪句给ecx赋值为A 是什么意思?
再后面41182F这一句 麻烦解释下、、确实不懂汇编
520Kelly 发表于 2014-11-19 20:31
我确实是没看懂、、你这样补了我都糊涂了
本来是ebp-78传递给ecx 你走完了这一句 也就是说ecx保存的是 ...
明天回复下吧,我现在得走了,马上没有公交车了,我回去一般不上网。明天回复你了。。不好意思啊。大神。
菜鸟中的菜鸟 发表于 2014-11-19 20:46
明天回复下吧,我现在得走了,马上没有公交车了,我回去一般不上网。明天回复你了。。不好意思啊。大神。 ...
没事、、我是菜鸟、、你忙
本帖最后由 菜鸟中的菜鸟 于 2014-11-20 09:14 编辑
520Kelly 发表于 2014-11-19 20:48
没事、、我是菜鸟、、你忙
rep movs dword ptr es:, dword ptr ds:
这句汇编代码的意思是:
把esi的内容复制到edi中,一次复制dword个字节,那么复制几次呢,是由ecx的值来决定的,这里
因为本身这个程序的注册码就比较长,所以为了能够有足够的空间容纳注册码的的长度,所以我这里
的A是自已设定的,A是10,一个复制4个字节,就是复制40个字节,足够了。POPAD是弹出堆栈,
因为这里用到了edi, esi来进行复制字符串,所以你如果之前不先保护edi,esi的值,那么程序不就出问题
了吗?所以要先先保护edi, esi的值,所以要puahad保护现场,之后用完了,再把原来的值POP到对应的
寄存器里,所以要PUSHAD,POPAD, 这个要成对出现。。。
菜鸟中的菜鸟 发表于 2014-11-20 09:05
rep movs dword ptr es:, dword ptr ds:
这句汇编代码的意思是:
把esi的内容复制到edi中, ...
那这里有几个关于汇编指令byte word dowrd的几个问题、、能不能帮忙解答一下
先问第一个吧、、大家常说的1字节爆破 是指多少位16进制?
比如C3两个 1字节是指C3还是C 或者是3呢?
520Kelly 发表于 2014-11-20 12:05
那这里有几个关于汇编指令byte word dowrd的几个问题、、能不能帮忙解答一下
先问第一个吧、、大家常 ...
格盘大大,你这问题又点扯谈哦。
一字节貌似指的是在一个关键点使用一个汇编指令达到爆破的目的吧。
其次C3算为一个字节。。。。。
学习一下啊
好好学习,天天向上,,,,来一点不是明码的追码啊。
Super麟 发表于 2014-11-20 13:04
好好学习,天天向上,,,,来一点不是明码的追码啊。
不是明码的追码。不是明码,那就只能分析算法了。既然是追码那一定是明码。
520Kelly 发表于 2014-11-20 12:05
那这里有几个关于汇编指令byte word dowrd的几个问题、、能不能帮忙解答一下
先问第一个吧、、大家常 ...
建议你去学习下8086汇编。就知道了。