0%

去除简单的花指令

在main函数存在多个这样的花指令

永真跳转导致ida解析失败,只需要将jz、jnz那里nop掉即可

阅读全文 »

控制流扁平化

目的是展平程序的控制流程图。

测试源码:

1
2
3
4
5
6
7
8
9
#include <stdlib.h>
int main(int argc, char** argv) {
int a = atoi(argv[1]);
if(a == 0)
return 1;
else
return 10;
return 0;
}
阅读全文 »

OLLVM

OLLVM是一个基于LLVM的框架的混淆器,主要功能有三:指令替换、混淆控制流、控制流平坦化。一言以蔽之,ollvm可以用来混淆程序,增加逆向难度。

阅读全文 »

跟着GitHub上的 27天成为java大神 项目学习Java。

损失精度

1
2
3
4
5
6
面试题:
short s=1, s = s+1;

short s=1, s+=1;

上面两个代码有没有问题,如果有,那里有问题
阅读全文 »

协议栈

指的是操作系统中的网络控制软件

套接字

套接字的实体就是通信控制信息,在协议栈的内部有一块专门用于存储控制信息的内存空间,具体是什么呢?通信对象的IP、端口号、通信状态等。协议栈是根据套接字中记录的控制信息来工作的。在终端使用netstat命令显示套接字内容

阅读全文 »

听闻rust大名已久,正巧赶上2023 秋冬季开源操作系统训练营,就来学习啦。

1
2
3
fn main() {
println!("Hello,world!");
}
阅读全文 »