android DHCP获取IP失败分析解决

上传人:zou****hua 文档编号:178904155 上传时间:2022-12-30 格式:DOCX 页数:9 大小:134.42KB
返回 下载 相关 举报
android DHCP获取IP失败分析解决_第1页
第1页 / 共9页
android DHCP获取IP失败分析解决_第2页
第2页 / 共9页
android DHCP获取IP失败分析解决_第3页
第3页 / 共9页
点击查看更多>>
资源描述
android通过DHCP获取IP初步流程 1.java 中实现 log 的方法是Log.v(TAG, Static IP configuration succeeded);D/WifiStateTracker( 860): DhcpHandler: DHCP request started发生在 ./frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java:22852.java 层运行 dhcp 的地方有两个 ./frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java ./frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java 定义在./frameworks/base/core/java/android/net/NetworkUtils.javarunDhcp 的 jni 实现./frameworks/base/core/jni/android_net_NetUtils.cpp:231对应的函数是 android_net_utils_runDhcp,此函数会调用 dhcp_do_request, dhcp_do_request 定义在./system/core/libnetutils/dhcp_utils.c 中3.rt3070 wifi 驱动适配层在./hardware/libhardwareegacy/wifi/wifi_ralink3070.cEthernet 分析1.EthernetNative.java 的勺 jni 在./frameworks/base/core/jni/android net ethernet.cpp故障描述:(android手机)LG P350连接wifi (wlan)时若使用动态ip分配,则总停留 在“正在从SSID名称获取IP地址”,然后获取失败,自动断开。反复重新连 接均如此。设置静态IP则可以连接。UEDO 23:13WLAN正在M hl_dev_1技麒】P地址网络通知当肓幵战网绪可臣时通知我WLAN网塔hl_dev_1正在获取p地址Tefi da_通过WPA/WPAZ P5K进厅斥护Z通过WPA/WPA2 P5K进万惺护排查过程:(1) 搜索引擎输入“LG P350 wifi obtain ip fail”,无有效信息。(2) 刷包,刷了 3 个官方 KDZ (V10K_00, V10N_00, V10P_00),无果。(3) 今天反编译关系,得学android调试技术,adb logcat时发现DHCP获取 ip时,提示有文件无权限打开,接着就是超时失败。关键部分信息摘录如下: D/NetworkStateTracker(1372): setDetailed state, old =AUTHENTICATING and new state=OBTAINING_IPADDRD/WifiStateTracker(1372): DhcpHandler: DHCP request started E/dhcpcd ( 9576): open /data/misc/dhcp/dhcpcd-wlanO.pid: Permission denied V/WifiStateTracker(1372): Changing supplicant state: COMPLETED = DORMANTD/WifiStateTracker(1372): Reset connections and stopping DHCPD/WifiStateTracker( 1372): Disabling interfaceD/NetworkStateTracker(1372): setDetailed state, old=OBTAINING_IPADDR and new state=FAILEDE/WifiInfo( 1372):setSSID nullV/WifiStateTracker( 1372): New network state is DISCONNECTEDV/WifiStateTracker (1372) : Changing supplicant state : DORMANT = DORMANT E/WifiInfo( 1372):getSSID nullD/ConnectivityService(1372): ConnectivityChange for WIFI:DISCONNECTED/FAILEDV/ConnectivityService(1372): Attempt to connect to WIFI failed. D/ConnectivityService(1372): getMobileDataEnabled returning false(4) root explorer (又名 RE 浏览器)浏览该文件夹(/data/misc/dhcp/), 发现others组无写权限。推测dhcpcd进程在动态获取到ip,需要写配置文件到这个文件夹的时候,发现 无权限写入,结果外部等待超时, wifi 连接被放弃和重置,因此外部也就表现 为无法连接了。 蠢GDQ 2306Special Permissions:Set IUDSftGIDStkkyOKCancel解决方法:(1) 手机要先 root,推荐 SuperOneClickv2.3.3。(2) 安装root explorer (又名RE浏览器)应用。( 3)关闭 wifi (即 wlan)(4) 打开 root explorer 并授权获取 root 权限。(5) 找到文件夹“/data/misc/dhcp/”,将others组的权限改为可读可写可执 行,如图。6)打开这个文件夹,如果里面有文件,全部删掉或者改名为 bak 作备份。dhcnr lanO.piJ23vn-r-rTdata/misdricpBPa r nt folde rcpcd-wlanOJIease匸 林聆帼此文件夹文件全部删除或者改名为bl件备份。85.04MB useEl 104.46MB fir已 r/w7)开启 wifi 重试。其它和备注:(1)只是为了反编译安卓apk,现在连adb logcat都得看了,悲催啊。目测本 人走远了?(2) ps看了看,貌似dhcpcd运行在root权限啊?为啥会对那个文件夹无写权 限?对 linux 毫无经验,附图求解释.管理员:C: TindovsAsysteB32cBd. exe 一 adb logcat|E/dhcpcd E/Wifilnfo E/wifi E/Wifilnfo E/Wifilnfo E/Wifilnfoopen Zdata/misc/dhcp/dhcpcd-wlanB.pidJ: Permission denied setSSID hl_deu_landroid_net_wif i_getRssiHelper rssi -32getSSID hl_deu_lsetSSID hl_deu_lvetSSID hl_deu_l 管理员:C: TindoTssysteB32cBd. Pr叩巳t沱5 P叩已巾巳5dhcp /data/miscrwxnwxr-x301 Bytes07 5月 2012 23:35:00systeesystemps !grep dhcpcd root17910 1Name: Location: Permissions: 5i;e: Tirriestannp: Owner:Group:Mime: MD5;dhcpcd/systf m/bin nwxr-xr-x 43.51K 四 M 月 2D12 0B:33:0D root shll unknown 2f9&734b8 ca &Qf2e07fe743 3c6r7b&beName: Location: Permissions: Size: Timestannp: OwnE r:用re浏览器搜索所有带dhcp关键字的文件时候发现dhcpcd (这个程序linux 下叫做dhcp客户端 主要负责获取ip地址的! ! !如果你静态ip好使 但是无 法获取路由分配的 ip 地址的话 肯定是这个程序的问题)文件和 system/bin/dhcpcd 修改日期与系统 rom 中的文件大多的日期不符,那么这个文 件明显是被替换了!所以想到了中毒或者文件损坏丢失。提取原厂ROM,解压 后用 re 浏览器放到 system/bin 目录下(必须有 root 权限)。恶意软件Android.KungFu系列变种分析及修复病毒分析Android.KungFu整体架构由两个模块构成,第一个模块(Loader)会在宿主运行 到特定场景时激活,随后执行提权操作,并加载第二个模块(Payload), Payload 模块则常驻内存,执行各种威胁手机安全的操作。Android.KungFu不同的变种 之间,区别主要在于不同的 Loader, Payload 模块则基本相同。当Loader模块被激活后,首先会试图获得ROOT权限。根据宿主软件的不同, Loader会采用不同的策略,如果Loader宿主本身需要ROOT权限,Loader就会 附着在宿主需要以ROOT权限执行的代码之后运行(例如一键科学上网免费版, 其中捆绑的Android.KungFu会嵌入在安装科学上网的代码中)。如果宿主本身 不需要ROOT权限,Loader会利用公开的漏洞(NPROC_RLIMIT)在后台静默获取 ROOT权限(例如音乐随身听)。由于这个漏洞广泛的存在于Android2.1和2.2 设备上,所以,即使手机没有ROOT权限,多数手机依然会受这个病毒威胁。然 后,随后,Loader会进行以下操作(不同的变种具体细节可能不同)1. 将系统分区设置为可写2获取设备信息,包括系统版本,手机品牌,Device ID,SDK版本等数据,写 入mycfg.ini,并将此ini文件复制到/system/etc下重命名为.rild_cfg 使用AES加密算法解密Payload(Payload通常保存在宿主的assets中,名为 Webview.db.init),并将 Payload 复制以下位置:/system/etc/.dhcpcd/system/xbin/ccb/system/bin/installd (将原始文件备份为/system/bin/installdd)/system/bin/dhcpcd (将原始文件备份为/system/bin/dhcpcdd)/sys tem/bin/bo ot anima tion (将原始文件备份为/sys tem/bin/bo ot anima tio nd) 3恢复系统分区为只读,并执行/sys tem/xbin/ccb至此,Payload已经完成金蝉脱壳,从宿主APK中成功的被释放出来了。由于病 毒替换的关键系统文件(ins talld, dhcpcd, boo tanima tion)在开机过程中会自 动启动,因此病毒实际上具备了以ROOT权限开机自动启动的能力。同时,由于 Payload已经脱离APK藏身于系统分区内,即使安全软件检测到病毒,也无法进 行清理操作。当Payload随系统自动启动之后,会尝试连接以下地址,获取攻击命令: http:/search.gongfu-:8511:8511:8511 由于Payload感染了多个系统进程,为避免相互冲突,当任意一个Payload进程 连接至控制服务器后,便创建/system/etc/dhcpcd.lock文件锁来进行进程同 止 步。目前 Payload 已知的功能包括:1. 自动下载APK软件包至本地2. 静默安装APK软件包3启动指定APK软件包4. 静默卸载 APK 软件包5. 设置浏览器首页(未使用) 至此,病毒就会源源不断的向受感染的手机中自动下载并安装软件,从中获取高 额利益了。清除方法1. 使用专杀工具由于 Android.KungFu 的特殊性,常规安全软件无法完全清除此病毒,因此 LBE 小组提供了专用 Android.KungFu 专杀工具,彻底清理 Android.KungFu 在系统内 的残留,您可以从 http:/www.yingyong.so/app/8/4426.htm 下载到此工具。 需要注意的是,使用此工具之前,您必须使用安全软件全盘扫描,确保所有感染 病毒的APK文件已被清理,否则有可能清除不彻底导致重新感染。2. 手工清理 我们推荐用户使用专杀工具,方便快捷,但如果您希望能自己动手的话,也可以 手工清除 Android.KungFu 残留。同样在手工清除前,请使用安全软件全盘扫描, 确保所有感染病毒的 APK 文件已被清理,否则有可能清除不彻底导致重新感染。如果您的手机未安装过Busybox,请首先安装Busybox: http:/www.yingyong.so/app/8/4277.htm使用超级终端软件,或者在PC上使用adb shell连接至手机,获取root权限后, 执行以下命令:busybox mou nt -0 remou nt ,rw /sys tembusybox chattr - i /system/etc/.dhcpcdbusybox rm /system/etc/.dhcpcdbusybox chattr - i /system/etc/dhcpcd.lockbusybox rm /system/etc/dhcpcd.lockbusybox chattr - i /system/etc/.rild_cfgbusybox rm /system/etc/.rild_cfgbusybox chattr - i /system/xbin/ccbbusybox rm /system/xbin/ccb如果/system/bin/installdd文件存在的话,执行以下操作busybox rm /system/bin/installdbusybox mv /system/bin/installdd /system/bin/installd如果/system/bin/dhcpcdd文件存在的话,执行以下操作busybox rm /system/bin/dhcpcdbusybox rm mv /system/bin/dhcpcdd /system/bin/dhcpcd 如果/system/bin/bootanimationd文件存在的话,执行以下操作 busybox rm /system/bin/bootanimationbusybox rm mv /system/bin/bootanimiationd /system/bin/bootanimation 最后,重启手机,完成清理reboot对以上操作的一些说明:chattr 命令是用来去除文件的 EXT2_IMMUTABLE_FL 标志位。如果系统分区使用 ext 文件系统的话,病毒会给所有受感染的文件设置此标志位,此标志位可以防 止文件被删除(这也是有些用户尝试用 RE 管理器删除失败的原因)。如果您在 执行chattr命令的时候出现错误,也不要惊慌,这说明您的系统分区不是ext 文件系统,只要随后的rm命令能够成功执行,就表示清理操作已成功。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!