Des's iOS IOS开发一些提升工作效率的事都什么玩八七糟的

IOS马甲包二进制雷同的处理

2017-07-10  本文已影响5867人  fanzhiyu7410

马甲包被认为雷同打回处理办法:

1.应用内容作出区别:

因为把整个应用替换资源代价太大,那尽量在启动,登陆,主界面作出很大差异,能让审核人员不会直观上认为是雷同。

2.代码混淆:

不同的马甲包在基类中定义不同的成员方法和成员变量。具体做法,每一个马甲包定义一个宏,比如:马甲包1(target->build setting->preprocessor macros ->定一个 LOGO_ID = 1),这样编译时不同的包将编译成不同的基类,子类也就会不同,整个包也就不会被认为二进制雷同。混淆代码的生成,可以写个脚本批量生成。

///

应用代码。。。

///

#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

///

应用代码。。。

///

//

//批量生成的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();

上一篇下一篇

猜你喜欢

热点阅读