阿里雲虛假分支剖析

package_main發表於2024-08-30

阿里雲虛假分支剖析

記得加入我們的學習群:

961566389

獲取最新資訊


1.a^2 + b^2 >= ab 形式

……
case 18432:
          P = (fe = (Y = (Oo = 23) * Oo) + (P = (qe = 12 >> qe) * qe)) >= (Y = Oo * qe), L = w[m = L], j.push(L), li = 25664;
          break;
        case 25664:
          w = G[I](35633, 36337), L = w[D], j.push(L), w = G[I](35633, 36337), L = w[N], j.push(L), w = G[I](35633, 36337), L = w[m], li = P ? 23107 : 13156;
          break;
……

如上程式碼的P表示式:

fe = (Y = (Oo = 23) * Oo) + (P = (qe = 12 >> qe) * qe) >= (Y = Oo * qe)

這個表示式簡化:

((Oo = 23) * Oo)  + (qe = 12 >> qe) * qe) >= Oo * qe

再簡化:

Oo  * Oo + qe * qe >= Oo * qe

啊哈!!

這不就是基本的不等式嘛

a^2 + b^2 >= 2ab > ab
所以恆為真!!!


2.a^2 + b^2 >= 2ab 形式

P = (Oo = 30 <= Oo) * Oo, P += A = (qe = qe <= 28) * qe, fe = (bo = 1 != bo) * bo, A = (Y = 2) * Y;

化簡:

P = Oo * Oo + qe * qe, fe = bo * bo, A = Y * Y;
(A = P * (fe += A)) >= (Y = (bo = (fe = Oo * bo) + (P = qe * Y)) * bo)

化簡:

(Oo * Oo + qe * qe) * (bo * bo + Y * Y) 
>= 
(Oo * bo + qe * Y)^2

這不就是(a^2 + b2)*(c2+d^2) >= (ac+bd)^2

化簡就是(ad)2+(bc)2 >= 2adbc

也就是符合x^2 + y^2 >= 2xy


3.正數和0大於等於0


((P = 3 >> P) * P) > (P = (qe = 124 | (Y = !ie)) << 25)

左邊是P^2恆大於等於0,右邊是0

124|0=124

124|1=125
無論是124還是125左移25位必定為零

3. 離散之美 (x+y)^2 >=3xy (x,y屬於{0,1})


4. 離散之美 (x+y)*x <=3xy (x,y屬於{0,1})


(A = (bo = (Oo = Oo <= 8) + (Y = so !== pe)) * bo) >= (qe = 3 * (fe = Oo * Y))

5. 離散之美 (x+y)*x <=3xy (x,y屬於{0,1})


6. 位運算 y^2 >= ((x&=31)<<31)


x&=31一定是小於等於31的數,那麼(x&=31)<<31一定等於0

(Oo |= 26) * Oo) > (Y = (Oo = 1 | (A &= 31)) << 31)

7.(R = 0 | (k = R)) < 0 、 (m = 0 | (x = m)) < 16384


等等……,瞭解下,即可,最好用的還是,去瀏覽器dump每個casenum下的真假,一直為真就是真,一直為假就是假。

記得加入我們的學習群:

961566389

獲取最新資訊

相關文章