混淆与反混淆
sparktend
这个作者很懒,什么都没留下…
展开
-
JS反混淆-虚假控制流
0x00 问题描述 在混淆代码中,发现多段如下形式的代码: 11 == cn ? (Ne = pe, ue = Ne, nn = 23907) : 11 > cn ? 5 == cn ? (m = void 0, _ = 0, nn = 8549) : 5 > cn ? 2 == cn ? (N = l, K = N, N = K, Oe = Oe.concat(N), nn = 23105) : 2 > cn ? 0 == cn ? (ae = ue[se], me = ae[ro],原创 2020-07-23 19:54:39 · 1074 阅读 · 0 评论 -
JS反混淆-控制流平展(二)
0x00 问题定义 接第一篇遗留的问题,在做控制流平展反混淆时,用动态执行的方式获取执行路径时,如果原控制流中存在循环的情况,那么获取到的路径就会有重复的现象,如下所示: [ [ 3 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [原创 2020-07-01 19:38:40 · 1108 阅读 · 0 评论 -
JS反混淆-控制流平展(一)
0x00 目标 基于AST实现针对使用控制流平展混淆的JS代码的反混淆。 0x01 反混淆方案 为了直观地说明JS的混淆方案,先上JS代码(某大厂真实代码): function Qs() { for (var s = 1; void 0 !== s; ) { var r = 3 & s , c = s >> 2 , b = 3 & c; switch (r) { case 0:原创 2020-06-05 15:30:01 · 2544 阅读 · 2 评论