IOS馬甲包二進(jìn)制雷同的處理

馬甲包被認(rèn)為雷同打回處理辦法:

1.應(yīng)用內(nèi)容作出區(qū)別:

因?yàn)榘颜麄€(gè)應(yīng)用替換資源代價(jià)太大,那盡量在啟動(dòng),登陸,主界面作出很大差異,能讓審核人員不會(huì)直觀上認(rèn)為是雷同。

2.代碼混淆:

不同的馬甲包在基類(lèi)中定義不同的成員方法和成員變量。具體做法,每一個(gè)馬甲包定義一個(gè)宏,比如:馬甲包1(target->build setting->preprocessor macros ->定一個(gè) LOGO_ID = 1),這樣編譯時(shí)不同的包將編譯成不同的基類(lèi),子類(lèi)也就會(huì)不同,整個(gè)包也就不會(huì)被認(rèn)為二進(jìn)制雷同?;煜a的生成,可以寫(xiě)個(gè)腳本批量生成。

///

應(yīng)用代碼。。。

///

#if defined (LOGO_ID == 1)

void zsclhntugg61_1_Base303(int s21_303){ s21_303 = 59; }

void lrecgkqdaou0_2_Base303(float rag31_303, short pwme62_303, short vkwa73_303, short x84_303){ rag31_303 = 45; pwme62_303 = 96; vkwa73_303 = 245; x84_303 = 116; }

void qyihgkbmpgvc49_3_Base303(int l51_303, long i92_303){ l51_303 = 96; i92_303 = 94; }

void rpyitvg6_4_Base303(byte phe01_303){ phe01_303 = 72; }

void qdpgeswrio34_5_Base303(int csuid01_303, long ryhal52_303, double fdmpy33_303){ csuid01_303 = 145; ryhal52_303 = 214; fdmpy33_303 = 12; }

void wrpfsgk0_6_Base303(short rqlgf21_303, short g42_303){ rqlgf21_303 = 220; g42_303 = 234; }

int m_rswxal62_303_1; short m_ghd9_303_2; long m_ulzo07_303_3; short m_isvdc0_303_4;

#elif (LOGO_ID == 2)

void eybomxaz37_1_Base304(int b81_304){ b81_304 = 154; }

void gskcutrlbem3_2_Base304(short vgi51_304, short nvgyu12_304, float dczun73_304, byte difml14_304, byte inhu65_304){ vgi51_304 = 251; nvgyu12_304 = 31; dczun73_304 = 111; difml14_304 = 88; inhu65_304 = 175; }

void cvkfts51_3_Base304(long zhb31_304, double gvrs12_304, long fwk13_304){ zhb31_304 = 177; gvrs12_304 = 32; fwk13_304 = 227; }

void acwtg3_4_Base304(byte agq71_304, short bc02_304, float xt53_304){ agq71_304 = 98; bc02_304 = 23; xt53_304 = 210; }

int m_lxes36_304_1; short m_bqfip5_304_2; int m_chgfti98_304_3; byte m_rke0_304_4; int m_gqfa86_304_5; byte m_ewkga6_304_6;

#endif

///

應(yīng)用代碼。。。

///

//

//批量生成的lua腳本(事例)

local l_type_tb = {"int", "float", "char", "double"}

local function func_ex( num )

l_str = ""

for i=1, num do

l_str = l_str .. " " .. l_type_tb[math.random(1,#l_type_tb)] .. " a".. i .. "=" .. math.random(100) .. ";\n"

end

return l_str

end

local function get_func_name()

local c = ""

local l_max = math.random(2, 6)

for i=1, l_max do

-- 65 90

-- 97 122

if math.random(2) == 1 then

c = c .. string.char(math.random(65, 90))

else

c = c .. string.char(math.random(97, 122))

end

end

return c

end

local function call_func()

{

local l_str =

[[

#ifdef LOGO_ID

#if (LOGO_ID == 1)

void func(void){

}]]

for i=2, 400 do

local l_type_str = "int"

for j=1, math.random(1,4) do

local l_type = l_type_tb[math.random(1,#l_type_tb)]

l_type_str =? l_type_str .. ", " .. l_type

end

l_str = l_str .. "\n#elif (LOGO_ID == " .. i .. ")\n" ..

" void " .. get_func_name() .. i .."(" .. l_type_str .. "){\n" .. func_ex(math.random(10)) .. " }"

end

l_str = l_str .. "\n#endif\n#endif"

local l_file = io.open("./1.txt", "w+")

l_file:write(l_str)

l_file:close()

end

call_func();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容