local function getRangesListBss()local so={}local list={}local n=0 local t=gg.getRangesList('^/data/*so:bss$')if not t then gg.alert('进程模块读取失败')os.exit()end for i,v in ipairs(t)do if t[i].type:sub(2,2)=='w' then so={}so['start']=t[i]['start']so['internalName']=t[i]['internalName']so['name']=t[i]['name']so['state']=t[i]['state']so['type']=t[i]['type']so['end']=t[i]['end']so['so']=string.match(t[i].internalName,'[^/]+$')n=(so['end']-so.start)/4096 so.n=n so.solen='【bss'..n..'】' so.son=so.so..n table.insert(list,so)end end local t_name={}for i,v in ipairs(list)do t_name[v.son]=v end return list,t_name end local function getRangesListSo()local so={}local list={}local n=0 local t=gg.getRangesList('^/data/*so$')if not t then gg.alert('进程模块读取失败')os.exit()end for i,v in ipairs(t)do if t[i].type:sub(2,2)=='w' then so={}so['start']=t[i]['start']so['internalName']=t[i]['internalName']so['name']=t[i]['name']so['state']=t[i]['state']so['type']=t[i]['type']so['end']=t[i]['end']so['so']=string.match(t[i].internalName,'[^/]+$')n=(so['end']-so.start)/4096 so.n=n so.solen='【so'..n..'】' so.son=so.so..n table.insert(list,so)end end local t_name={}for i,v in ipairs(list)do t_name[v.son]=v end return list,t_name end local function getRangesListAll()local so={}local list={}local n=0 local t=gg.getRangesList('^/data/*lib*$')if not t then gg.alert('进程模块读取失败')os.exit()end for i,v in ipairs(t)do so={}so['start']=t[i]['start']so['internalName']=t[i]['internalName']so['name']=t[i]['name']so['state']=t[i]['state']so['type']=t[i]['type']so['end']=t[i]['end']so['so']=string.match(t[i].internalName,'[^/]+$')n=(so['end']-so.start)/4096 so.n=n so.solen='【'..n..'】' so.son=so.so..n table.insert(list,so)end local t_name={}for i,v in ipairs(list)do t_name[v.son]=v end return list,t_name end local function getRangesListEnd()local so={}local list={}local n=0 local t=gg.getRangesList('^/data/app/*so*$')if not t then gg.alert('进程模块读取失败')os.exit()end for i,v in ipairs(t)do if t[i]['state']=='Cd' and t[i].type:sub(2,2)=='w' then so={}so['start']=t[i]['start']so['internalName']=t[i]['internalName']so['name']=t[i]['name']so['state']=t[i]['state']so['type']=t[i]['type']so['end']=t[i]['end']so['so']=string.match(t[i].internalName,'[^/]+$')if t[i+1]then if t[i+1].type:sub(2,2)=='w' then so['end']=t[i+1]['end']end n=(so['end']-so.start)/4096 so.solen='【app'..n..'】' so.son=so.so..n table.insert(list,so)end end end local t_name={}for i,v in ipairs(list)do t_name[v.son]=v end return list,t_name end ranges , sonamelist =getRangesListBss() so_list = {} def = {2,1} deft={'number', 'number'} defn={'指针深度2,3', '最大偏移量'} so_list.i = #defn for so, v in pairs(sonamelist) do table.insert(deft, 'checkbox') table.insert(defn,v.state..' '..so) so_list.i=so_list.i+1 so_list['list'..so_list.i] = so print(so_list['list'..so_list.i]) end local p = gg.prompt(defn, def, deft) for i=1,#defn do if p[i] == true then gg.alert(so_list['list'..i]) end end