170523 逆向-循环语句

来源:互联网 发布:java wait await 区别 编辑:程序博客网 时间:2024/05/21 22:24

1625-5 王子昂 总结《2017年5月23日》 【连续第234天总结】

A.加密与解密 循环语句

B.循环是高级语言中可以进行反向引用的一种语言形式,其他类型的分支语句都是由低向高端地址区域走的

因此,可以通过这点快速地将循环语句识别出来

如果确定某段代码是循环,就可分析其计数器,一般是用ecx寄存器做计数器,也有用其他方法来控制循环的,如test eax,eax

今天找了一些crackeme的程序来反汇编练手,基本无论多么简单都无从下手,只会直接在内存中查找字符串,找不到就傻眼

其中经常看到的有两个指令未在书上出现过,特查询并记录于此

test:

两个操作数,表示进行逻辑与运算,结果若为0则置ZF标志位为1

常见用法有test eax,eax,可以测试eax是否为0

lea:

两个操作数,前一个为16位寄存器,后一个为16位存储单元

作用为将该存储单元的值放置入寄存器中

eg:lea eax,[00454070h]

就是令eax=00454070h

优点在于本命令的效率高

C.明日计划

crackme教程、练习

加密与解密 数学运算符的优化

原创粉丝点击