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教程、练习
加密与解密 数学运算符的优化