汇编似乎有很多技巧。



将寄存器设置为零(xor reg, reg

将堆栈仅扩展四个字节(push/pop ecx

将寄存器设置为-1(OR reg -1
多以两位的幂进行移位,或n ** 2 + 1的LEA进行移位



是否存在此类大会特质的列表/书籍/资源?

评论

哪种指令集架构?

@SYS_V想知道x86_64

异或寄存器中的零技巧是什么?这只是数学/逻辑。

#1 楼

没有所谓的“技巧”手册(个人而言,我更喜欢“成语”一词)。所引用的大多数惯用法都被编译器用来以比您在手册中看到的方式更有效的方式执行精确的任务。

最好的学习方法是读取生成的编译器汇编代码和/或shellcode。它们是汇编成语的重要来源。

以下是阅读所有这些成语的好读物或链接列表: ,xorpd的rax;

亨利·沃伦(Henry S. Warren)的《哈克的喜悦》(第二版);

乔恩·埃里克森(Jon Erickson)的《黑客:剥削的艺术》(第二版) >
Randall Hyde撰写的《汇编语言的艺术》(第二版);

Shell-storm的Shellcodes数据库用于研究案例;


评论


还有一本可爱的书amazon.com/xchg-rax-xorpd/dp/1502958082

–维塔利·奥西波夫(Vitaly Osipov)
18-2-26在11:57

是的,我将其添加到列表中!

–恐怖
18年2月26日在11:59

值得一提的是,兰德尔·海德(Randall Hyde)的《汇编语言的艺术》(第二版)简直就是垃圾。我也读过。它的装配很少。它完全重写了DOS的汇编艺术,实际上是一本好书。第2版​​教授所谓的“高级汇编”,这基本上是一种独立的语言。

–埃文·卡洛尔(Evan Carroll)
18-10-5在20:36

#2 楼

Intel,AMD和VIA CPU的微体系结构丹麦技术大学的Agner Fog为汇编程序员和编译器制造商提供的优化指南。

评论


当心,基于“分支预测”的优化对于下一代处理器可能已过时,具体取决于将使用哪种篡改机制消除“幽灵”和“崩溃”漏洞。无论如何,文档的其余部分都令人印象深刻。感谢您发布!

–恐怖
18 Mar 1 '18 at 17:22