之前一直以为编译llvm的pass需要编译一整个llvm,然后llvm编译的内存要求要又很高(50G交换空间都不够!然后发现其实完全不需要,安装库就可以,编译参数也可以通过llvm-config来获取。 我这里使用arch,做一下简单的记录
在看llvm新旧版pass manager的时候,看到其中一个设计是使用CRTP这种模式,对我来说还是很陌生的。或者说C++多态我都不太熟,于是简单学习一下这个部分(C++真tm难啊
跨进程内存读写有多种方式,这里主要了解一下修改物理内存来实现跨进程内存修改方法。这种方法主要是无痕,对比修改cr3来说要无痕的多。
后面再试试修改cr3和修改MDL映射来做到跨进程内存读写方式。
ObRegistyCallBacks保护指定进程,可以让攻击程序OpenProcess打开指定进程后获取的句柄权限是我们指定的权限范围, 比如不能读取进程内存, 不能终止进程。
如何绕过这种保护,可以使用句柄降权/提权的方法,就可以对提高已经获取到的句柄权限。
使用Rust编写几种在windows上常用的hook方式:
- IAT hook
- Inline hook
- VMT hook
为什么要用rust的不用c++?就是想用,想给自己找麻烦😎
使用c++, rust实现遍历PEB获取模块信息的代码段. 主要练练rust
Rust语言污点分析相关的几篇内容
- SafeDrop: Detecting Memory Deallocation Bugs of Rust Programs via Static Data-flow Analysis.
- Encapsulated Functions: Fortifying Rust’s FFI in Embedded Systems.
- Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem
- Detecting Cross-language Memory Management Issues in Rust
- MirChecker: Detecting Bugs in Rust Programs via Static Analysis
- Static Deadlock Detection for Rust Programs
香山杯初赛的3到逆向的WP,不是很难的题,但是有一些新的东西,chaquopy框架,这个框架完成了一套sdk,可以安卓调用python代码也可以python调用java代码。可惜的是python是源码存储,还有研究的空间
智能合约代码混淆,感觉还是ollvm的影子,还是那三种模式,只是做了相关的适配以及加了很多其他细节,总体思路是没有变的。
创新点在于使用改进后的混沌映射来做不透明谓词,增加了一定的混淆程度
会议:IEEE Transactions on Software Engineering
等级:CCF-A