本来做污点是想减少llm 手动检索的心智负担的,没想到进化这么快,1m上下文感觉干搜也够了
-[x] 重构后端cli,分离搜索逻辑和参数处理
-[x] 修改trace格式,适配污点分析
-[o] 正向/反向污点
-[ ] polars 进行指令频率分析,找计算指令密集处定位vm
-[ ] 切分基本块,重建cfg,分析流程循环
-[ ] 接入rizin增强功能
-[ ] 污点提供mcp
-[ ] gui重构优化
使用类似csv的格式
结构: 绝对地址;so 偏移;机器码;指令;寄存器操作;regs_read;mem.base_index_disp;mem_access_info;regs_write;func_call(可选);可视化字符(可选);
实际上只要处理成结构化的数据就可以,方便解析,方便处理
效果图, 由于对ltv的底层进行了大量优化,追踪十多层带分叉大概2秒不到; trace文件大几百mb,不到1G

把指令划分为几种类型
mem2reg, reg2mem, mem2mem, reg2reg
主要问题是 不同类型寄存器以及不同长度内存读写怎么对齐传递路径
正向污点同理规则稍微不同,但大体还是复用代码
很明显 只要find_prev "st__6f1c451790_" 就能定位到上一条语句
ld__6cf0159028_8
如果目标是x8 (寄存器2) 则
q0=0x0x0100000001000000e061f2cb6c000000 的值实际上来自 两个 w 一个 x 寄存器, 4+4+8
这种情况会比较复杂;如果遇到交叉覆写的情况就头大了;可以自己思考下解决办法
很简答,没啥说的
直接继续追 rw__.*8=0x188 就可以了
要根据上一次搜索的实际内存范围来决定;比如实际目标内存是 6cf0157880:8 那就是reg1,如果是 6cf0157888:8 那就追reg2
搜 rw__.*reg_num=reg_value
一般情况是进行计算
简单,也不用考虑计算过程,直接无脑追就行,搜rw__.*0=0x6f5c29c5c8。记录下来后面拿求解器分析
在此分支,深度优先搜索,但要限制层数
一般是通过memcpy函数进行的,TODO
原型是在010上做的,但果然还是自己可控的环境更好
010脚本自动分析trace
6d2d694db0;51db0;d10203ff;sub;sp, sp, #0x80;rr__sp=0x6cf0157aa0;;;rw__sp=0x6cf0157a20;
6d2d694db4;51db4;f9002bf5;str;x21, [sp, #0x50];rr__x21=0x6cf0158710;mw__6cf0157a20_#0x50;st__6cf0157a70_8;;
6d2d694db8;51db8;a9064ff4;stp;x20, x19, [sp, #0x60];rr__x20=0x6d2d99f8e0_x19=0x6cf0158b88;mw__6cf0157a20_#0x60;st__6cf0157a80_16;;
6d2d694dbc;51dbc;a9077bfd;stp;x29, x30, [sp, #0x70];rr__fp=0x6cf0158b60_lr=0x6d2d9a6038;mw__6cf0157a20_#0x70;st__6cf0157a90_16;;
6d2d694dc0;51dc0;9101c3fd;add;x29, sp, #0x70;rr__sp=0x6cf0157a20;;;rw__fp=0x6cf0157a90;
6d2d694dc4;51dc4;d53bd055;mrs;x21, tpidr_el0;;;;rw__x21=0x6cf0159000;
6d2d694dc8;51dc8;f94016a8;ldr;x8, [x21, #0x28];;mr__6cf0159000_#0x28;ld__6cf0159028_8;rw__x8=0x46fcad3c17d8108c;
6d2d694dcc;51dcc;6f00e400;movi;v0.2d, #0000000000000000;;;;rw__v0=0x6dd3fe01e8;
6d2d694dd0;51dd0;52802009;mov;w9, #0x100;;;;rw__w9=0x100;
6d2d694dd4;51dd4;5280004a;mov;w10, #2;;;;rw__w10=0x2;
6d2d694dd8;51dd8;f81d83a8;stur;x8, [x29, #-0x28];rr__x8=0x46fcad3c17d8108c;mw__6cf0157a90_#-0x28;st__6cf0157a68_8;;
6d2d694ddc;51ddc;f9401408;ldr;x8, [x0, #0x28];;mr__6cf01586a0_#0x28;ld__6cf01586c8_8;rw__x8=0x0;
6d2d694de0;51de0;3c8083e0;stur;q0, [sp, #8];rr__q0=0x0x00000000000000000000000000000000;mw__6cf0157a20_#0x8;st__6cf0157a28_16;;
6d2d694de4;51de4;3c8183e0;stur;q0, [sp, #0x18];rr__q0=0x0x00000000000000000000000000000000;mw__6cf0157a20_#0x18;st__6cf0157a38_16;;
6d2d694de8;51de8;f90017e9;str;x9, [sp, #0x28];rr__x9=0x100;mw__6cf0157a20_#0x28;st__6cf0157a48_8;;
6d2d694dec;51dec;b90043ea;str;w10, [sp, #0x40];rr__w10=0x2;mw__6cf0157a20_#0x40;st__6cf0157a60_4;;
6d2d694df0;51df0;b90033ff;str;wzr, [sp, #0x30];rr__wzr=0x0;mw__6cf0157a20_#0x30;st__6cf0157a50_8;;
6d2d694df4;51df4;f90003e8;str;x8, [sp];rr__x8=0x0;mw__6cf0157a20;st__6cf0157a20_8;;
6d2d694df8;51df8;f9001fff;str;xzr, [sp, #0x38];rr__xzr=0x0;mw__6cf0157a20_#0x38;st__6cf0157a58_8;;
6d2d694dfc;51dfc;f9400028;ldr;x8, [x1];;mr__6cf01583b0;ld__6cf01583b0_8;rw__x8=0x6f1c451790;
6d2d694e00;51e00;d284c00a;mov;x10, #0x2600;;;;rw__x10=0x2600;
6d2d694e04;51e04;aa0103f4;mov;x20, x1;rr__x1=0x6cf01583b0;;;rw__x20=0x6cf01583b0;
6d2d694e08;51e08;aa0003f3;mov;x19, x0;rr__x0=0x6cf01586a0;;;rw__x19=0x6cf01586a0;
6d2d694e0c;51e0c;52800029;mov;w9, #1;;;;rw__w9=0x1;
6d2d694e10;51e10;f2c0002a;movk;x10, #1, lsl #32;rr__x10=0x2600;;;rw__x10=0x100002600;
6d2d694e14;51e14;3940010b;ldrb;w11, [x8];;mr__6f1c451790;ld__6f1c451790_1;rw__w11=0x7b;
6d2d694e18;51e18;7100817f;cmp;w11, #0x20;;;;rw__w11=0x7b;
6d2d694e1c;51e1c;540000c8;b.hi;#0x6d2d694e34(51e34);;;;;
6d2d694e34;51e34;f9000288;str;x8, [x20];rr__x8=0x6f1c451790;mw__6cf01583b0;st__6cf01583b0_8;;
6d2d694e38;51e38;39400109;ldrb;w9, [x8];;mr__6f1c451790;ld__6f1c451790_1;rw__w9=0x7b;
6d2d694e3c;51e3c;34000789;cbz;w9, #0x6d2d694f2c;rr__w9=0x7b;;;;
6d2d694e40;51e40;910003e0;mov;x0, sp;rr__sp=0x6cf0157a20;;;rw__x0=0x6cf0157a20;
6d2d694e44;51e44;aa1403e1;mov;x1, x20;rr__x20=0x6cf01583b0;;;rw__x1=0x6cf01583b0;
6d2d694e48;51e48;aa1303e2;mov;x2, x19;rr__x19=0x6cf01586a0;;;rw__x2=0x6cf01586a0;
6d2d694e4c;51e4c;94000042;bl;#0x6d2d694f54(51f54);;;;;
6d2d694f54;51f54;f9400028;ldr;x8, [x1];;mr__6cf01583b0;ld__6cf01583b0_8;rw__x8=0x6f1c451790;
6d2d694f58;51f58;39400108;ldrb;w8, [x8];;mr__6f1c451790;ld__6f1c451790_1;rw__w8=0x7b;
6d2d694f5c;51f5c;7101b91f;cmp;w8, #0x6e;;;;rw__w8=0x7b;
6d2d694db0;51db0;d10203ff;sub;sp, sp, #0x80;rr__sp=0x6cf0157aa0;;;rw__sp=0x6cf0157a20;
6d2d694db4;51db4;f9002bf5;str;x21, [sp, #0x50];rr__x21=0x6cf0158710;mw__6cf0157a20_#0x50;st__6cf0157a70_8;;
6d2d694db8;51db8;a9064ff4;stp;x20, x19, [sp, #0x60];rr__x20=0x6d2d99f8e0_x19=0x6cf0158b88;mw__6cf0157a20_#0x60;st__6cf0157a80_16;;
6d2d694dbc;51dbc;a9077bfd;stp;x29, x30, [sp, #0x70];rr__fp=0x6cf0158b60_lr=0x6d2d9a6038;mw__6cf0157a20_#0x70;st__6cf0157a90_16;;
6d2d694dc0;51dc0;9101c3fd;add;x29, sp, #0x70;rr__sp=0x6cf0157a20;;;rw__fp=0x6cf0157a90;
6d2d694dc4;51dc4;d53bd055;mrs;x21, tpidr_el0;;;;rw__x21=0x6cf0159000;
6d2d694dc8;51dc8;f94016a8;ldr;x8, [x21, #0x28];;mr__6cf0159000_#0x28;ld__6cf0159028_8;rw__x8=0x46fcad3c17d8108c;
6d2d694dcc;51dcc;6f00e400;movi;v0.2d, #0000000000000000;;;;rw__v0=0x6dd3fe01e8;
6d2d694dd0;51dd0;52802009;mov;w9, #0x100;;;;rw__w9=0x100;
6d2d694dd4;51dd4;5280004a;mov;w10, #2;;;;rw__w10=0x2;
6d2d694dd8;51dd8;f81d83a8;stur;x8, [x29, #-0x28];rr__x8=0x46fcad3c17d8108c;mw__6cf0157a90_#-0x28;st__6cf0157a68_8;;
6d2d694ddc;51ddc;f9401408;ldr;x8, [x0, #0x28];;mr__6cf01586a0_#0x28;ld__6cf01586c8_8;rw__x8=0x0;
6d2d694de0;51de0;3c8083e0;stur;q0, [sp, #8];rr__q0=0x0x00000000000000000000000000000000;mw__6cf0157a20_#0x8;st__6cf0157a28_16;;
6d2d694de4;51de4;3c8183e0;stur;q0, [sp, #0x18];rr__q0=0x0x00000000000000000000000000000000;mw__6cf0157a20_#0x18;st__6cf0157a38_16;;
6d2d694de8;51de8;f90017e9;str;x9, [sp, #0x28];rr__x9=0x100;mw__6cf0157a20_#0x28;st__6cf0157a48_8;;
6d2d694dec;51dec;b90043ea;str;w10, [sp, #0x40];rr__w10=0x2;mw__6cf0157a20_#0x40;st__6cf0157a60_4;;
6d2d694df0;51df0;b90033ff;str;wzr, [sp, #0x30];rr__wzr=0x0;mw__6cf0157a20_#0x30;st__6cf0157a50_8;;
6d2d694df4;51df4;f90003e8;str;x8, [sp];rr__x8=0x0;mw__6cf0157a20;st__6cf0157a20_8;;
6d2d694df8;51df8;f9001fff;str;xzr, [sp, #0x38];rr__xzr=0x0;mw__6cf0157a20_#0x38;st__6cf0157a58_8;;
6d2d694dfc;51dfc;f9400028;ldr;x8, [x1];;mr__6cf01583b0;ld__6cf01583b0_8;rw__x8=0x6f1c451790;
6d2d694e00;51e00;d284c00a;mov;x10, #0x2600;;;;rw__x10=0x2600;
6d2d694e04;51e04;aa0103f4;mov;x20, x1;rr__x1=0x6cf01583b0;;;rw__x20=0x6cf01583b0;
6d2d694e08;51e08;aa0003f3;mov;x19, x0;rr__x0=0x6cf01586a0;;;rw__x19=0x6cf01586a0;
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 7小时前
被温泉划水鱼编辑
,原因: