rcore学习笔记

rcore学习笔记

这是我这几天学习rcore-Tutorial第三版时的笔记, 汇总到了一起. lab1 学习了不少RISC-V的中断相关的基础知识, 之后补的中断相关的知识也补在这里了 lab3, lab4 对实现细节写得详细一些, 稍微看懂一点代码就写上去了, 很多函数的实现细节都写下来了.

有的地方还留下了一些疑问没有解决, 自己也查了资料但没有找到答案, 如果去掉感觉有可能产生误导, 所以就留着了.

Read More

K210开发板相关外设学习

K210开发板相关外设学习

这篇文章是我买了Widora AIRV R3这个K210芯片的开发板。这时候刚好看了一些Python内部实现的书,并且Maixpy(一个移植Micropython到K210开发板上的项目)对这块开发版支持还不完善,于是就克隆下来,试图修改移植。

Read More

堆复习

堆复习

64位时, 默认开启的fastbin范围(chunk总大小)是0x20 - 0x80 32位TODO

tcache是64个单向链表,最多7个节点(chunk),chunk的大小在32bit上是8到512(8byte递增);在64bits上是16到1024(16bytes递增)。 fastbin只有10个链表, 范围肯定很小, 而和smallbins有62个, 大小基本重合.

当某一个tcache链表满了7个,再有对应的chunk(不属于fastbin的)被free,就直接进入了unsortedbin中。 tcache_perthread_struct结构,一般是在heapbase+0x10(0x8)的位置。对应tcache的数目是char类型。

Read More

自制Ollvm

自制Ollvm

原本网上没有多少开源的代码混淆器,现在却发现学习OLLVM的人特别多,很多人也有自己的混淆器。

汇编的混淆和LLVM还是挺有意思的。虽然这个项目的进度依然停滞在只学完简单运算混淆的地步,但有时间我应该会回来继续。

Read More