csatblogspotdotcom

Tuesday, July 4, 2017

华为手机变砖的解决

机型:华为荣耀3C,H30-U10,2G+8G
更新到最新版 H30-U10_EMUI3.0_Android4.4_V100R001CHNC00B268 用了一段时间后,无法锁屏,反复出现 很抱歉键盘锁停止运行 ,只好一边不停点着一边设置成不锁屏,可是用了一段时间后通信录居然打不开,也是一开就提示停止运行,打电话、短信,都打不开用不了,于是只能尝试系统恢复,可是发现居然无法恢复,重启后还是老系统,最后发现是无法进入recovery模式,而且无法三键强刷(从SD卡强制升级),fastboot模式可以进,后面在刷机精灵帮助下进了一次recovery,再后面就怎么都进不了,手机也成砖头了,于是找到工具,参考:
http://www.shuame.com/faq/restore-tutorial/690-jzhf.html
http://www.shuame.com/faq/restore-tutorial/3283-h30-u10.html
在 win7 64 系统上操作,不行,最后找了一台 Windows XP 系统装好驱动,用线刷工具一刷就OK了,可以进 recovery ,再后面就是从SD卡升级到最新系统,最后恢复用户数据。

总结下,手机有 fastboot 和 recovery 两种模式,recovery 下可以进行卡刷,如果 recovery 损坏无法进入,只能线刷,即用USB连接PC,在PC上使用工具软件利用fastboot模式刷机,恢复recovery。线刷所有操作在XP下更可靠,win7不一定成功,线刷的软件估计是以 Windows XP 系统为标准开发的。

Labels: , ,

Sunday, December 11, 2016

转:如何访问维基百科

转自: https://zh.m.wikipedia.org/zh-sg/Help:如何访问维基百科 编辑本页 其他语言 帮助:如何访问维基百科 本文旨在为访问维基百科及维基媒体基金会其他计划有困难障碍的中文用户,提供有效安全的访问方法。 快捷方式: H:VISIT 微笑欢迎 新手工具箱 目录 常用页面列表 帮助页面 欢迎!新来者 新手索引大全 关于维基百科 新手上路 请求帮助 新手入门 社区首页 致其他百科用户 新手入门简明指南 新手版在线训练 使用教学材料库 寻求他人协助 互助客栈 联系我们 IRC即时求助 知识问答 小天使 问与答 如何创建新条目? 如何访问维基百科? 到哪里发问或提建议? 导师计划 传扬维基百科 宣传片 分享你的感受 第一印象 与维基的相识 为什么写维基 首次编辑感觉 简而言之 简而言之:目前对于中国大陆用户,如果想正常访问维基百科,可以使用未受污染的Hosts或者DNS,也可以使用免费的翻墙软件或者考虑购买收费的代理服务,在使用代理编辑维基百科时可能需要获取IP封禁例外权。在使用上述措施时请注意安全以免个人信息泄露。 直接访问 当您在访问经过加密(HTTPS)的页面时,地址栏中应当出现一个锁形图标。 维基百科的网址如下: https://zh.wikipedia.org (中文维基百科桌面版) https://zh.m.wikipedia.org (中文维基百科移动版) https://www.wikipedia.org (多语言入口,可以通过链接访问或搜索任意语言版本的维基百科) 自2015年6月中旬起,维基媒体基金会对旗下项目进行了强制性加密(HTTPS),未加密的明文页面(HTTP)会被强制跳转到对应的加密页面。如果访问中浏览器出现证书错误等提示,说明连接极有可能已经受到了干扰,请停止访问,不要添加例外,以免传输的数据被窃听。 目前,在中国大陆直接访问维基媒体基金会的不同项目可能会遇到如下情况: 项目 加密(HTTPS) 明文(HTTP)[注 1] 桌面版 移动版 桌面版 移动版 维基百科 中文 ✗ ✗ ✗ ✗ 英文 ✓ ✓ Yes Yes 粤文 ✗ ✓ ✗ Yes 赣语 ✓ ✓ Yes Yes 吴语 ✗ ✓ ✗ Yes 闽南语 ✓ ✓ Yes Yes 闽东语 ✓ ✓ Yes Yes 客家语 ✓ ✓ Yes Yes 藏文 ✓ ✓ Yes Yes 维吾尔文 ✓ ✓ Yes Yes 文言文 ✓ ✓ Yes Yes 其它中文项目 维基文库 ✓ ✓ ✗ Yes 维基教科书 ✓ ✓ Yes Yes 维基词典 ✓ ✓ Yes Yes 维基新闻 ✓ ✓ ✗ Yes 维基语录 ✓ ✓ Yes Yes 维基导游 ✓ ✓ Yes Yes 其它多语言项目 维基学院 ✓ ✓ Yes Yes 维基物种 ✓ ✓ Yes Yes 维基共享资源 ✓ ✓ Yes Yes 维基孵育场 ✓ ✓ Yes Yes 元维基 ✓ ✓ Yes Yes 维基数据 ✓ ✓ Yes Yes MediaWiki官网 ✓ ✓ Yes Yes 后台支持性服务 图片服务器[注 2] ✓ Yes 后台代码维护 ✓ Yes 技术文档 ✓ Yes 邮件列表 ✓ Yes 上标注释: ^ 明文版页面会自动跳转至加密版。不考虑HSTS的影响,如果该跳转步骤能顺利完成,则视为可用,标记为黄色勾号。 ^ 根据维基媒体基金会的设置,该站首页没有任何内容。 该表格反映的情况仅适用于IPv4连接。最近修订日期:2016-12-05。 查 论 编 如果你在直接连接(未使用代理、VPN等手段)维基百科时遇到的情况和上文描述不尽相同,也欢迎留下反馈信息。 维基百科应用程序 主条目:维基百科应用程序 Get it on Google play.svg Download on iTunes.svg Windows 8及Windows RT用户:到Windows Store下载 黑莓用户:从BlackBerry World下载 IPv6连接 维基媒体基金会旗下项目均支持IPv6连接,由于目前对于IPv6连接的过滤技术尚不成熟,故所以在IPv4访问受限时,拥有IPv6地址的用户(例如教育网)可能仍然可以访问维基媒体项目。 修正域名解析 维基媒体旗下的部分项目目前被GFW通过DNS污染的方式封锁,通过修正域名解析的方式可以恢复访问。 修正域名解析后,用户在首次访问中文维基百科时,需输入以https://打头的网址方可成功连接,否则仍会遭到屏蔽。由于应用了HTTP严格传输安全技术,使用较新版本浏览器的用户如果成功进入了维基媒体基金会旗下项目的页面,在之后的两周(1209600秒)内再次访问相同项目时浏览器会自动将“http://”改为“https://”来访问加密版页面而无须通过服务器进行该跳转。 Hosts文件 Hosts文件存在于电脑本地,通过修改该文件可以改变域名—IP地址的映射。 修改Hosts文件的具体做法是: 用文本编辑器打开Hosts文件(若要编辑,电脑用户需要获取管理员权限,手机和平板电脑用户需要进行root或越狱操作)。对于Windows用户,该文件默认情况下位于C:\Windows\system32\drivers\etc\目录中。其他系统用户请参见hosts文件。 在该文件中加入下列内容(维基媒体基金会有多个IP地址,你可以根据实际情况选择填写不同的IP地址)。需要注意的是,Hosts文件不支持通配符,因此需要逐个添加地址。 208.80.154.224 zh.wikipedia.org #中文维基百科 208.80.154.224 zh.m.wikipedia.org #中文维基百科移动版 208.80.154.224 zh-yue.wikipedia.org #粤文维基百科 208.80.154.224 wuu.wikipedia.org #吴语维基百科 保存文件。如果保存的时候出现任何错误提示,如“权限不足”等,请允许电脑保存;如果杀毒软件提示这一举动存在安全风险,请您忽视。按照本教程的方式修改Hosts文件不会对您的电脑造成损害。修改后的Hosts记录通常可以立即生效,但若保存之后如果还不能正常访问,您可以通过清除DNS缓存来实现,包括: 重新启动设备 执行下列指令 ipconfig /flushdns(Windows) lookupd -flushcache或dscacheutil -flushcache(Mac OS X) /etc/rc.d/init.d/nscd restart或/etc/init.d/nscd restart(Linux)、sudo /etc/init.d/dns-clean start(Ubuntu) 开启再关闭飞行模式(Android) 维基媒体基金会拥有下列IP地址,您可以使用下面的IP地址替换前面教程中的提供的IP地址。在中国大陆,建议使用美国数据中心的IP,因为通常情况下访问速度更快且网络延迟较低。 IP地址 对应项目 数据中心名 位置 198.35.26.96 大部分项目 ulsfo 美国旧金山 208.80.154.224 大部分项目 eqiad 美国阿什本(英语:Ashburn, Virginia) 91.198.174.192 大部分项目 esams 荷兰阿姆斯特丹 在中国大陆可直接连接的IP地址 通过查询 text-lb.(数据中心名).wikimedia.org (lb是load balancer的缩写)、mobile-lb.(数据中心名).wikimedia.org 可以获得上述的IP地址。 DNS设置 参见:域名系统 通常情况下无论使用设置在中国大陆的DNS服务还是使用设置在外国的DNS服务,因为解析结果都需要穿过GFW,所以都会被GFW污染。但是仍有一些设置在中国大陆的小型DNS使用技术手段回避GFW的污染并提供不受污染的结果,通常使用这些小型DNS也能够访问其他被封锁的网站,此类DNS服务包括: 服务提供者 首选IP地址 备选IP地址 Panda DNS 115.159.157.26 Udns 115.159.157.26 115.159.158.38 ORZDNS 59.46.81.50 值得注意的是,使用DNS可能会产生安全问题,DNS服务器的控制者尽管无法监视您与网站之间传输的内容,但是却有能力记录您的IP地址和您试图访问的网站域名。DNS服务商可能会将这些信息分享给第三方(例如政府和广告商)。上面提到的DNS都使用了开源的程序获取不受污染的结果,这些程序可以在Github上获取。此外,在首选和备选IP地址中填入不同DNS服务提供者的地址也是可以的。 欲更换DNS服务,首先需要获得新服务商的DNS服务器的IP地址,这通常可以在它们的官网找到。获得DNS服务商的IP地址后,更改DNS服务的方法如下: Windows 7 / Vista OS X 10.10 Yosemite Android(第三方教程,不同设备的操作方法可能不同,请参考设备厂商的说明) iOS(第三方教程) 一些路由器等网络硬件设备也允许用户修改DNS,详情请参阅设备说明书。 代理服务器 通过代理服务器来中转数据流量,用户可以绕过绝大多数类型的网络封锁。 注意: 由于维基媒体基金会封禁了大部分公共代理服务器以避免破坏,若要通过代理服务器编辑维基百科,您可能需要有一个拥有IP封禁例外权的账户。 由于用户与代理服务器之间的连接未必被加密且用户通常无法掌握代理服务器的运行细节,因此用户数据可能被第三方监听(例如政府或网络运营商)或被代理服务提供者收集甚至共享给第三方(例如政府或广告商)。对此,用户应避免通过代理服务器进入网上银行等涉及隐私和财务的网站并尽可能地使用https加密连接。 本章节主要讨论相关的技术并举出一些知名度较高的例子。在配置代理服务器前,用户需要联系代理服务器的提供者来获取相关参数。 翻墙软件 翻墙软件是一种代理软件,您电脑和目标服务器之间的流量都将通过其指定的代理服务器中转。常见的翻墙软件有赛风、蓝灯、自由门等。使用翻墙软件编辑维基百科,通常情况下需要申请IP封禁例外权。在这里可以获取常见的翻墙软件。 HTTP代理 操作系统设置 Windows 7 / Vista(对Windows的代理设置进行的修改可以影响到包括Internent Explorer在内的大部分软件的代理设置) OS X 10.10 Yosemite 浏览器设置 部分浏览器允许用户独立设置代理服务,所做的修改仅在该浏览器中有效。 Firefox:设置方法 Chrome:跟随操作系统的代理设置 大部分中国公司开发的浏览器:跟随操作系统的代理设置 浏览器扩展程序 Firefox和Chrome等浏览器支持扩展程序,通过安装代理类的扩展程序可以也可以使用代理服务,部分代理扩展程序还可以根据网址进行匹配。通过浏览器扩展程序进行的代理设置通常只在该浏览器中有效,不会影响其它程序。 Firefox AutoProxy:该扩展程序根据网址匹配代理服务器,也可以设置多个代理并可以配合代理软件(本章节也会有所介绍)工作。此外,用户还可以订阅网址列表(由开发小组维护,用户可直接调用)。下载地址 配置脚本 自动配置脚本范例一(感谢super1提供) function FindProxyForURL(url, host){ host=host.toLowerCase(); if( dnsDomainIs(host,"wikipedia.org") ||dnsDomainIs(host,"wikisource.org") ||dnsDomainIs(host,"wikibooks.org") ||dnsDomainIs(host,"wikimedia.org") ||dnsDomainIs(host,"wiktionary.org") ||dnsDomainIs(host,"wikinews.org") ||dnsDomainIs(host,"wikimediafoundation.org") ||dnsDomainIs(host,"mediawiki.org") ||dnsDomainIs(host,"wikiquote.org") ) return "PROXY 91.198.174.2:80"; else return "DIRECT"; } 注1:91.198.174.2:80可改为任何可用代理服务器 注2:PAC用途是自动配置,只有维基网站用代理91.198.174.2:80,其他均不用代理 注3:将它保存为后缀pac的文件备用,如存为C:\wikimedia.pac,注意:设置直接写此路径无效 Internet Explorer 本机地址范例如下: file://E:\GSW\wikipediaIE.pac 一个可用的在线脚本地址: http://androidgao.googlepages.com/wikipediaIE.pac 设置自动配置脚本 Internet选项-连接 如果您是通过局域网上网请选择局域网设置,如果您是拨号上网(包括ADSL虚拟拨号),请选择您正在使用的拨号连接,然后点设置 无论以上哪种,接下来都选择使用自动配置脚本(打勾),并填入匹配以上本机地址格式范例的本机脚本地址或者一个可用的在线脚本地址 Firefox 本机地址范例如下: file:///E:/GSW/wikipedia.pac 一个可用的在线脚本地址: http://androidgao.googlepages.com/wikipedia.pac 未使用扩展 工具->选项->常规->连接设置->自动代理配置(URL)->填入匹配以上格式范例的脚本地址 已使用扩展 SwitchProxy扩展 设置:工具->SwitchProxy->Manage Proxies->Add->Standard->Next->Proxy Label填入:任意,如:PacForWikipedia->Automatic proxy configuration URL->填入地址(参考未使用扩展的情况) 使用:工具->SwitchProxy->PacForWikipedia 不用:工具->SwitchProxy->None xyzProxy扩展 Chrome 使用Proxy SwitchyOmega扩展 该扩展工具一般内置于GoAgent压缩包的Local文件夹里,也可以从Chrome线上应用程序商店中获得:https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif 该工具可设置HTTP、HTTPS、FTP、SOCKS 代理端口。其无法自行代理,需要配合其他软件一起使用。 VPN VPN是一种网络隧道,通过它可以连接到代理服务器,VPN的连接通常是加密的。 各种操作系统的设置方法如下: Windows 8 / 8.1 Windows7 / Vista OS X 10.10 Yosemite Android(对于非原生系统,操作方法可能不同,请参考设备厂商的说明) iOS 注意:对于系统不支持的VPN协议,需要通过安装第三方软件来实现。 Shadowsocks Shadowsocks是一种基于socks5的开源代理软件,支持Windows、Mac OS X、Linux、Android、iOS、OpenWRT平台,下载对应平台的客户端后仅需简单的配置即可使用。Shadowsocks的连接是被高度加密的,所以相对于HTTP代理更加安全且能避开关键字封锁。其原作者clowwindy因被有关部门约谈已停止开发、删除Github上的源代码,但另有开发者志愿进行后续开发。 Shadowsocks分为服务器端和客户端。在使用之前,需要先将服务器端部署在支持Python(且未被GFW封禁)的服务器上,然后通过客户端连接并创建本地代理。此外,用户也可以选择购买基于Shadowsocks的商业服务,以免去自行部署的麻烦。但提供服务的Shadowsocks服务器通常不为用户所控制,所以安全问题仍然不能忽视。 客户端下载地址:https://shadowsocks.org/en/download/clients.html 服务器端部署可参考:https://github.com/shadowsocks/shadowsocks/tree/master Tor Tor的全称是“The Onion Router”(洋葱路由器),本为匿名软件,亦可作翻墙之用。其通过三重代理链隐匿路由信息,反制现阶段大量存在的流量过滤、嗅探分析等工具,难以追踪,有效地保证了安全性。 Tor项目的官方网站提供了Tor浏览器——集成了Tor且经过安全性定制的Firefox,并针对封锁了Tor的地区提供了流量混淆工具。中国大陆地区目前可选择obfs4和meek-azure网桥接入Tor网络,也可以配置其他翻墙工具作为其前置代理。Tor浏览器连接成功后,将提供SOCKS5代理127.0.0.1:9150以供其他应用程序使用。 为防止滥用,维基媒体项目以扩展TorBlock查封了大多数Tor出口节点,Tor用户只能阅读但无法编辑维基百科。要突破该限制,用户需申请IP封禁例外权限。 网页代理 一个网页代理的截图,可以看出浏览器地址栏中输入的是网页代理的网址,而网页代理的输入框中才是需要访问的网站的地址,此外页面顶部存在轻微的排版错乱现象 网页代理或在线代理是一种在网页上运行的代理服务器程序(本质上是一种网站),用户无需在本地进行任何设置,输入网页代理服务的网址即可开始使用,相对方便。使用时,用户需要在网页代理服务提供的网址输入框(而不是浏览器的地址栏)中输入需要访问的地址,网页代理服务会为用户加载内容。 由于网页代理服务的传输原理和一般的网站类似,故封锁网页代理比封锁其他类型的代理工具要更加容易,因此网页代理也更容易失效。而且不加密(HTTP)的网页代理服务同样会受到关键字过滤的干扰,建议用户使用支持加密(HTTPS)的在线代理服务。另外,对于内容较复杂的网页,使用网页代理可能会出现排版错乱、乱码等问题。 镜像网站 镜像网站普遍只是邮递员,内容与官方的维基百科实时同步。 Wikiwand(英文、中文) 短网址服务 鉴于一些网络论坛中存在的地址过滤和发言字数限制,用户可以使用短网址服务压缩链接长度并绕开过滤规则,不过这些服务并不能用来绕过网络封锁。另外维基百科为了避免用户绕过垃圾链接过滤器,禁止用户添加主要短网址服务的链接,所以这些链接(除第一个外)都不能添加到维基百科中。 http://zhwp.org:访问时只需输入“http://zhwp.org/页面名”即可直接访问中文维基百科的对应页面,详见说明书。 http://t.cn:新浪微博的短网址服务,通过第三方提供的短链接生成器可以压缩任意网址。该服务在中国大陆境内较为稳定。 http://dwz.cn/:百度的短网址服务,可自定义短网址。该服务在大陆境内较稳定。 https://bit.ly:将需要压缩的地址输入其官网即可获得短链接。该服务在中国大陆境内容易受到干扰。 https://goo.gl/:Google的短网址服务。该服务于大陆境内不稳定。 外部链接 由techyan撰写的翻墙教程 讨论 Lt2818最后编辑于3天前 Wikipedia® 除非另有声明,本网站内容采用CC BY-SA 3.0授权。 隐私桌面版

Labels: , , , ,

Saturday, April 2, 2016

安装NetIQ Chariot client Endpoint(IxChariot Endpoint)遇到的问题

NetIQ和Ixia是两家企业,Chariot 是NetIQ的一款测试网络的产品,Ixia成为这款产品的reseller,产品名为IxChariot。 Chariot分为console和client,client也叫Endpoint,console分发script到client控制client执行测试,console和client可以是不同的设备,例如console在A,两个client分别在B和C。 win7 64 SP1安装endpoint时,第一次使用NetIQ Chariot 5.4文件包里的client安装程序,总是提示: Error 1920. Service Ixia Performance Endpoint(IxiaEndpoint) failed to start. Verify that you have sufficient privileges to start system services. 尝试管理员权限执行、XP兼容模式,照样不行,网上搜了下,找到了Ixia的一份pdf文档,里面说是没有安装qWAVE(Quality Windows Audio/Video Experience)导致,且给出了win2008里面具体的方法:控制面板里面打开Windows功能-qWAVE,我在win7里面没看到对应选项,反而是在services.msc里面看到了Quality Windows Audio Video Experience服务,开启之后再次安装endpoint提示依旧,放弃;使用另一个ENDPOINT4.5简易版.exe,绿色软件,出现进程,无界面,另外还下载了一个IxChariot 7.10 SP3 Endpoint安装后有进程,命令行运行endpoint提示“The Windows Endpoint can only be run as a service”,实际上,client(即endpoint)只需要有一个进程存在即可,操作、管理,全在console完成,不幸的是console在win7 64 SP1安装后,选择script时总是错误,提示pwinlist->locateoraddelementwithkey本该为true实际为false,点进去看有错误码CHR0117,尝试换了script路径、管理员权限、更换安装路径,都试过也不行,安装到winXP虚拟机里面可正常运行,目前console只支持win,而endpoint支持各种平台,包括虚拟机

Labels: , , , , ,

Wednesday, February 24, 2016

利用DNSCrypt保护DNS traffic

简介: 什么是DNSCrypt? DNSCrypt是一个开源项目(也叫dnscrypt-proxy),官网https://dnscrypt.org/相关源码在github上,Windows版client的地址https://github.com/jedisct1/dnscrypt-proxy/blob/master/README-WINDOWS.markdown,纯命令行,也可以加上不同界面,用户侧client和server之间建立起安全通道,而server则有一个专门的列表(github和下载下来的文件里面均有,站点由多个组织提供,位于全球不同地点),命令里面加参数可以指定具体哪个server(参考https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv); 另外OpenDNS(已被Cisco收购)也创建了这个开源项目的子项目(参考https://github.com/opendns?utf8=%E2%9C%93&query=DNSCrypt或者https://github.com/opendns/dnscrypt-win-client),提供Windows版客户端自带界面,所连接的server为OpenDNS自己的公共DNS; 参考(https://www.opendns.com/about/innovations/dnscrypt/ 和 https://github.com/opendns/dnscrypt-win-client) 开源DNSCrypt和OpenDNS所建的DNSCrypt子项目,二者均会在后台加装自动运行的服务,不同的是前者命令行里面手动安装,服务名为dnscrypt-proxy,后者安装软件时自动安装,服务名为OpenDNSCrypt(另外还有一个DNS Client) 为什么使用DNSCrypt? GFW等会对DNS查询进行干扰,而利用DNSCrypt能对DNS查询过程加密,就像利用SSL对http进行加密(https)一样(然而DNSCrypt加密并非SSL),对DNS查询起到保护的作用;另外一个是DNSSEC,对DNS查询进行一些认证等,也对DNS查询过程起到保护作用;DNSCrypt与DNSSEC相互补充相互配合;这里关注的是DNSCrypt; 操作过程: DNSCrypt(Windows版): 下载附件https://download.dnscrypt.org/dnscrypt-proxy/LATEST-win32-full.zip解压后管理员权限命令行进入目录执行./dnscrypt-proxy.exe -R cs-uswest2(站点名参考https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv) --test=0,测试下如果OK,则安装服务./dnscrypt-proxy.exe -R cs-uswest2(站点名) --install,services.msc里面会多出一个自动启动的dnscrypt-proxy,服务开启后本地设置DNS为127.0.0.1即可使用; DNSCrypt(OpenDNS子项目的Windows版): 到https://github.com/opendns/dnscrypt-win-client点击download zip下载打包文件,安装dnscrypt-win-client-master\DNSCryptUpgrade中的最新版(如DNSCrypt-v0.0.6.msi),services.msc里面会多出一个自动启动的OpenDNSCrypt,(实际上服务启动后DNS设置为127.0.0.1即可使用),打开界面(服务没启动时打开界面后服务也会启动)后自动安全连接使用OpenDNS提供的DNS(显示所用server为OpenDNS的IP),仔细观察发现客户端启动的时候自动将DNS修改为127.0.0.1,退出时自动还原; DNSCrypt各种平台都有,包括Android,但是Android上需要修改文件系统包括创建init.d系统,比较麻烦,暂不尝试 实际使用过程中,使用OpenDNS的DNSCrypt客户端配合OpenDNS的DNS,效果比自己修改hosts文件使用静态DNS解析 会好,例如使用DNSCrypt后http://www.w3schools.com就可以打开了,之前使用修改后hosts文件也打不开

Labels: , , , ,

Monday, February 22, 2016

tcpdump+nc(netcat)+wireshark进行手机实时跟踪抓包

准备知识: wireshark跟踪结果里面选中某行记录,右键-追踪流-tcp流,可以看到整个tcp流的信息; wireshark菜单-文件-导出对象-http,可以导出网页里面的图片等信息; nc(netcat)在Windows也有相应版本;有些版本的服务端参数为l(listening)+p(port),有些版本l和p不能一起用;老一些的版本、busybox里面自带的版本,等,均是混用的,Ubuntu14.04里面自带版本是l和p不能一起使用; 以老一点的版本为例:nc -lp 4444开启服务端监听端口4444,nc 对端IP 4444执行后建立起连接,两边可以交互; tcpdump |busybox nc -lp 4444,tcpdump的结果输出作为下一个命令的输入,“|”建立起一个无名管道,busybox是精简的工具集,这里使用了它的nc命令开启服务端口4444; 过程: 手机wifi和PC(win) wifi接入在同一LAN: 手机su后执行:tcpdump |busybox nc -lp 4444,PC(win7 64)执行.\netcat-win32-1.12\nc64.exe 192.168.1.40(手机IP) 4444,二者建立起连接,手机端命令的stderr直接输出到手机: tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes stdout重定向到无名管道,最后出现在PC的nc64命令后 同时开启wireshark监听网卡的4444端口,也能看到PC和手机之间的交互,停止nc后则跟踪不到和手机相关的数据包;如果查看netstat能看到手机的4444端口和PC的某端口是建立起了连接的; 手机cellular connection + PC(win) wifi: 手机su后执行tcpdump |busybox nc -lp 4444,PC执行.\adb\adb.exe forward tcp:44444 tcp:4444 后执行 .\netcat-win32-1.12\nc64.exe 127.0.0.1 44444 PC可显示实时数据包,但wireshark还无法跟踪到,事实上此方法对wifi连接也适用;如果查看netstat,手机的4444和PC的44444分别与本设备localhost的某端口建立起连接,二者之间没有直接网络连接,这个连接是通过adb实现的,只在localhost,并没有发送出去,所以wireshark无法抓取到;如何让wireshark能抓取到?可以考虑如下思路: 1. 使用Linux; 2. 放弃wireshark使用另外的软件如RawCap等; 3. 改路由; 4. 使用管道pipes(不管匿名还是命名的),PC收到包后写到管道里面,同时wireshark读取管道; 5. 使用wireshark命令行,但尝试均失败,powershell里**\netcat-win32-1.12\nc64.exe 127.0.0.1 44444 |.\Wireshark.exe -k -S -i 或者 **\netcat-win32-1.12\nc64.exe 127.0.0.1 44444 |.\Wireshark.exe -k -S -i - 执行后是没反应的,普通用户和管理员都一样,cmd也试过能启动但只要有数据包就弹出错误;其实这种方法是最可行的,网上有一些相关信息,例如:http://www.draytek.com/index.php?option=com_k2&view=item&id=5534&Itemid=293&lang=en 等,也许是win7 64 位版本的原因吧,换成XP也许OK; (参考:https://wiki.wireshark.org/CaptureSetup/Pipes) 上面方法1-4没有具体尝试,Windows下面使用wireshark实时手机抓包确实不好操作,还是Linux好使 注意:http://code.tutsplus.com/tutorials/analyzing-android-network-traffic--mobile-10663 里面对adb forward的理解是错误的,弄反了,具体可参考:http://developer.android.com/tools/help/adb.html,adb forward tcp:6100 tcp:7100 是把PC的6100端口forward到手机的7100,forward换成reverse则是反向 后记: 最近发现安装wireshark时有一个androiddump默认没选,重新选中安装后,居然可以实时跟踪手机包:1. 手机连上电脑并打开USB调试;2. adb需启动;3. 打开wireshark界面自动显示Android的几个相关interfaces,选中即可进行跟踪 参见:https://www.wireshark.org/docs/man-pages/androiddump.html

Labels: , , ,

Friday, February 12, 2016

对于Android上ssh的思考

Android可以使用adb连上电脑操作,甚至可以通过wifi方式adb,那更进一步,能否在Android开启ssh服务,使用ssh连接手机进行操作? PC端一般是OpenSSH(现在也有Windows版本,参考https://winscp.net/eng/docs/guide_windows_openssh_server,而FileZilla只是个传送文件的Supports FTP, FTP over SSL/TLS (FTPS) and SSH File Transfer Protocol (SFTP))提供ssh服务,而小型系统如嵌入式和移动设备,dropbear是一个选择,dropbear的获取有几种方法: 1. dropbear官网http://matt.ucc.asn.au/dropbear/提供源码,下载后自己编译; 2. https://code.google.com/archive/p/droidsshd/downloads提供下载已编译好的dropbearmulti; 3. cyanogenmod.org提供Android的ROM,下载对应的ROM后里面含有相关可执行文件,以前的版本是dropbear,从CM9开始已经是OpenSSH了; (有的busybox里面集成了dropbear,参考http://android.stackexchange.com/questions/123183/how-do-i-install-dropbear-ssh-on-android这里面也介绍了安装dropbear的过程,但自己下载的版本里面没看到) 对于第一种方式,需Cross Compiling,参考(http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARM) 首先官网下载wget http://matt.ucc.asn.au/dropbear/dropbear-2015.71.tar.bz2并解压tar -xvjf dropbear-2015.71.tar.bz2 下一步安装编译器sudo apt-get install gcc-arm-linux-gnueabihf(没有安装libncurses5-dev) 这里需要注意的是gcc-arm-linux-gnueabi和gcc-arm-linux-gnueabihf,前者针对armel architecture的编译器,后者是针对armhf architecture的编译器,armel和armhf有什么区别?简单的说就是armel硬件差点,浮点运算是靠模拟器执行,效率低,针对的是低端,后者是硬件支持浮点运算,高级一些,现在的手机CPU性能越来越好,于是直接使用后者编译吧 接下来进入加压目录执行./configure --host=arm-linux-gnueabihf --prefix=/ --disable-zlib CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld注意这里用不着zlib,使用sftp才用得到,而dropbear是不包含sftp的 再下一步:make 得到几个dropbear、dropbearkey、dropbearconvert、dbclient(这里有点小问题:缺少了可执行文件scp,虽然生成了scpmisc.o和scp.o等文件;另外本想编译到一个文件中也失败) 继续使用arm-linux-gnueabihf-strip dropbear命令对这几个小文件进行瘦身(按我的理解是去掉可执行文件里的debug信息和多余的空格类字符等),可执行文件小了不少 放到Android里执行提示:k_shell/2000:6210: dropbear: No such file or directory,更换为gcc-arm-linux-gnueabi(最初为gcc-arm-linux-gnueabihf)重新编译也一样,(后来又回头折腾了下,网上有的说是动态库/静态库的问题,自己在PC创建了库文件链接,也指明静态库,但结果仍不行;--静态库是编译的时候把库文件包进去,动态库不包而是运行的时候动态加载),自行编译失败; 对于dropbearmulti,从这里:https://code.google.com/archive/p/droidsshd/downloads下载已编译好的dropbearmulti,这个dropbearmulti是一个可执行文件,集成了多个命令,直接执行提示包含以下四个命令: Dropbear multi-purpose version 0.52 Make a symlink pointing at this binary with one of the following names: 'dropbear' - the Dropbear server 'dbclient' or 'ssh' - the Dropbear client 'dropbearkey' - the key generator 'scp' - secure copy 做好几个命令的软连接后,利用命令生成rsa和dss的key: dropbearkey -t rsa -f ****/dropbear_rsa_host_key(dropbearmulti给的默认为/data/data/br.com.bott.droidsshd/files/etc/dropbear_rsa_host_key) dropbearkey -t dss -f ****/dropbear_dss_host_key(dropbearmulti给的默认为/data/data/br.com.bott.droidsshd/files/etc/dropbear_dss_host_key) 开启服务(使用root用户,如普通用户执行后是没反应的): dropbear -A -N username -U 0 -G 0 -C password -p IP:portnumber (以上参考http://www.droidforums.net/threads/ssh-daemon-dropbear-on-android-2-0.9038/和http://paguilar.org/?p=30) 下一步就可以使用客户端连接了,实际使用效果不太好,连接反应有些慢,连上后操作还可以(局域网环境),过一会不操作就没反应了,需要重新连接,而且不管什么用户名,只要登录上去就是root权限,更让人失望的是没有sftp服务,没法在其他系统通过客户端去获取文件,而在其他系统使用scp去获取该系统文件时又提示: sh: /data/data/br.com.bott.droidsshd/files/bin/sftp-server: not found Fatal: Received unexpected end-of-file from server 还是需要sftp服务,如何获取sftp服务?可以利用OpenSSH的sftp(参考http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_SFTP-Server_DropBear_for_ARM;https://www.cybermilitia.net/2009/02/28/dropbear-on-debian/;https://github.com/iMilnb/docs/blob/master/dropbear%2Bsftp-android.md;等) 里面的scp试了下也不行,提示:unknown user 0255,执行dbclient(root或普通用户)则提示:dbclient: exited: Unknown own user(有人说是不同系统libc不一样造成的,参见https://sourceforge.net/p/openqrm/mailman/message/26489043/)有可能是没/etc/passwd但手动加上该文件也不行。。 既然dropbear没有sftp,无法传送文件,对于一个手机打开ssh服务提供终端服务而不能传送文件,有何必要?我想这是个鸡肋,对于一个处理能力和续航能力等各方面性能都普通的移动设备来说,要么什么都不打开,要么临时打开提供传送文件,具体如何实施更为简洁?上面提到的第三种方法值得一试,到CyanogenMod官网找到自己的手机型号,下载相关ROM,拷贝ROM中所需文件到自己目录直接使用; 下载到一个cm-7.2.0-galaxysmtd.zip,东西很全,里面包含dropbear、dropbearkey、scp、sftp-server、ssh,(这一套dropbear的默认路径为/data/dropbear,另外还有个/dtata/.ssh里面有个known_hosts),甚至bash、sqlite3、tcpdump、vim、busybox、iptables等诸多程序也自带了,很不错。把那几个文件复制到和ROM中同样的/system/xbin或者/system/bin,sftp-server没啥提示,也不想折腾了,dropbear是OK的,先用dropbearkey生成key,再开启dropbear,普通用户也可以开启,但是别人登录的时候就不行,用root用户开启ssh服务就可以正常登录;ssh(client)有点问题(为了执行ssh(client)专门在笔记本上装了个ssh server(win版OpenSSH))对root来说,提示unknown host是否信任,之后输入啥都没反应除非杀死进程,只有普通用户使用ssh才OK;另外scp如果root使用也和ssh一样不OK,普通用户从其他地方拷贝文件到本地OK,需要注意的是默认目录是C:/(Windows)或/(Linux),下载到其他目录需要自己添加路径后缀,root或普通用户拷贝远程的文件到本机也是要么lost connection要么输入密码后没反应了,为何?路径问题,默认C:/(Windows)或/(Linux)手动指明路径后OK,例如:scp ./test1 ssh@192.168.1.**:/users/ssh/test1(ssh是用户名),或scp a.txt ***@***:/home/***/; CyanogenMod从版本9开始是OpenSSH,试了下cm-10.2.1-jfltexx.zip,里面包含sshd、ssh、scp、sftp、ssh-keygen,执行sshd、ssh、scp、sftp全提示需要libssh.so,拷贝libssh.so过来到/system/lib/,不行,提示cannot locate symbol "EVP_ripemd160" referenced by "libssh.so"...,libssl.so也过来(系统原有libssl.so先备份),也不行,提示一样,重启,还不行,提示不变; 看来直接拷贝过来的可执行文件不是那么靠谱,OpenSSH那一套行不通,估计是缺少了正确的依赖文件,dropbear那一套部分可用(dropbear服务和ssh,scp和sftp-server不OK); 另外对于dropbear开ssh server,CM官网有介绍https://wiki.cyanogenmod.org/w/Doc:_dropbear,可以采用rsa key的方式免密码登录,或者更改root密码通过root+密码方式登录,过程介绍很详细; 仔细想想,这些东西对于一个手机来说到底有没有用呢?首先手机各方面性能,包括续航能力、计算能力、安全性,各方面都不如PC,尤其是安全问题(dropbear等可执行文件被其他程序利用了开了端口,所以放在那里也不安全),并不适合开启服务给别人连接,而且手机上的app也多且实用,通信方面足够用了,打电话、浏览网页、聊天等,如果PC连手机,adb足够,拷贝东西?直接把手机当存储设备吧。只有极少应用场景,例如有时候急需ssh到某处,那就留下ssh和scp客户端吧(root没法用只能普通用户用),其他的看个人喜好 后记: cellular connection时如果运营商为手机提供公网IP且允许inbound连接被访问,那么可以从其他位置访问ssh服务,如果不是,例如运营商封了inbound的端口或者分配了内网IP,那么及时手机开了ssh服务也没法被外部直接访问,不过可以试一下dynamic domain name service动态域名解析服务,给手机IP分一个域名,绑定,例如http://no-ip.com 或 http://dyndns.com,相关应用DynDNS for Android,参考http://www.droidforums.net/threads/ssh-daemon-dropbear-on-android-2-0.9038/

Labels: , , ,

Thursday, February 11, 2016

ssh的两种“key”

安装ssh服务时,必须生成key,linux系统安装ssh时自动安装了,而有些则需要手动生成,例如Android中安装dropbear运行ssh服务前,需手动生成key,这种key是用于ssh管道的,这个管道可以提供terminal服务也可以提供文件传输服务; 另外一种key是用于客户端的认证的,登录认证可以是用户名和密码也可以是key; 下面的帖子说的很清楚了:http://security.stackexchange.com/questions/55947/how-does-sftp-function-without-a-manually-generated-public-private-key-pair 以下是节选: Short answer: there is necessarily a public/private key pair on the server. There may be a public/private key pair on the client, but the server may elect to authenticate clients with passwords instead, SSH is a generic tunnel mechanism, in which some "application data" is transferred. One such application is the "remote shell" which is used to obtain an open "terminal" on a server, in which terminal applications can be run. Another, distinct application is the file transfer protocol known as SFTP. From the SSH point of view, which application is used is irrelevant. This means that any authentication concept applies equally to SSH (the "remote shell" part) and SFTP. The server MUST have a public/private key pair. That key is used for the tunnel part, so a server will use the same key pair for all applicative protocols. Most Unix-like operating systems (e.g. Linux) create a SSH key pair when first installed, and will use it thereafter. This means that you don't have to "create a key" when you configure your SSH server to also be used as SFTP: the server already has a key. A client may have a public/private key pair if it wishes to be authenticated based on that key; this is all about client authentication, i.e. about how the server will make sure that it is talking to the right client. Password-based authentication and key-based authentication are the two most common methods (some servers are configured to require both). By definition, only the key-based authentication requires that the client stores and uses a key pair of its own. 另一个人: In SSH, you have two sets of key pairs: one for the server and one for the users. The server key pair is mandatory but it is typically generated during the installation of the server: all you have to do is validate the server public key fingerprint (a simple hash) and, as long as the key is unchanged, your client will silently connect. The key pair you use for authenticating, however, can be optional (or disallowed) depending on what authentication method you've decided to allow or require on the server. The Wiki article on SSH has plenty of juicy details but, to summarise, there are 4 supported authentication mechanism: Password requires a username and password combination Public key requires acess to the private part of the public key you use for authentication (typically, you setup the key pair on the client and just update the server configuration with your public key). Keyboard interactive is mostly used for one-time passwords and similar. GSSAPI, a framework used for implementing other authentication scheme, usually to implement single sign-on (most notably Kerberos)

Labels: , , ,

Wednesday, February 10, 2016

关于Android自带截屏和录屏命令

Android自带截屏软件screencap和屏幕录像软件screenrecord,可使用手机终端执行或通过adb执行,注意,如果root用户执行手机会重启,PC的adb里显示“Segmentation fault”,普通用户执行是正常的;截屏或录像的结果可保存到指定位置,或者直接输出到stdout,如adb等终端,而adb shell会将\n转换为\r\n,自己处理一下删掉多余的\r即可保存为图片或视频 后记: 有些系统自带screenshot截屏软件(除了screencap外) 另外,刚发现在手机中命令行执行screenrecord提示Unable to open '文件名': Permission denied 在电脑上adb进入手机则可录制

Labels: ,

Tuesday, February 9, 2016

Android中无法解析域名的解决

Android手机正常使用,但通过terminal emulator或者adb进入Android执行ping 域名,或者nslookup 域名,或者使用busybox ping都提示错误,原因在于Android无/etc/resolv.conf文件,解决方法就是手动添加这个文件(/etc指向/system/etc),在里面添加nameserver ***,添加完成后立即执行命令正常

Labels: , , ,

Monday, February 8, 2016

关于网络抓包--手机抓包测试

之前尝试了PC上不同系统(Windows和Linux)中的抓包,现在继续探索手机上的抓包 相关知识 对于手机抓包,可以让手机通过PC代理联网(两类方式:1.PC开启代理后手机接入同一网段通过代理上网;2.PC直接开热点让手机连;第二种方式也是代理,只不过PC除了代理功能外还充当了AP)在PC上抓包,或者直接在手机上执行抓包程序(tcpdump以及诸多应用程序,tcpdump及部分app需要手机root,而另一些app甚至无需手机root;命令的输入可以在手机安装终端app或者电脑上使用),前者只能抓取到手机wifi模块,如果PC上使用wireshark则可以实时查看,后者可抓包wifi和cellular data communication(包括GPRS/3G/4G等),有的app可实时查看; 这里使用tcpdump手机版,已root的手机通过USB连接PC,安装好驱动,PC通过adb进入手机执行命令,这样做的好处是尽量减少在手机安装app的同时能抓取手机wifi模块和蜂窝模块的数据,抓包的结果则在PC上进行查看与分析; 具体操作 首先手机需root,否则adb进入手机命令行后无法执行su,有些目录没有权限,直接抓包会提示没有权限操作wifi或蜂窝设备; 手机需装好驱动,让PC和手机通过USB能流畅沟通,adb能顺利连上手机并进入手机系统命令行; 手机需打开开发者选项和USB调试,否则adb devices(列出连接的设备)结果为空,即PC发现不了设备; 手机上弹出的是否信任**需选择信任,否则adb devices列出的设备对应状态为offline,信任后列出的状态为device; 选择的tcpdump需是针对手机编译的版本(手机一般为arm处理器),也可以自行编译; 上述准备工作做好后adb shell进入手机命令终端,su进入root,将SD卡中的tcpdump拷贝至用户app目录如/data/app并修改权限、所属组等(无chgrp可使用touch创建空文件然后cat 原文件 > 新文件;当然也可chown 所属用户:所属组 文件名),执行./tcpdump或者/data/app/tcpdump直接输出,或者加上-w tmp.pcap将结果保存至tmp.pcap文件;也可“mount -wo remount rootfs /”将根目录挂载为读写后(根目录原本只读)拷贝tcpdump至/sbin,接着再“mount -ro remount rootfs /恢复根目录为只读,此时直接执行tcpdump即可; 抓包wifi模块会提示: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes 说明tcpdump已知道了所抓包设备的链路层协议--Ethernet,和笔记本wifi联网后tcpdump的提示一样; 而抓包cellular connection会提示: listening on rmnet0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 这说明tcpdump没能识别link-type或者说没能知道链路层协议是哪种(手机安装busybox后执行busybox ifconfig可显示rmnet0的link层是PPP协议,而用Android自带的ifconfig无显示),在Linux下tcpdump -D列出的可抓包设备会显示 any (Pseudo-device that captures on all interfaces) 抓取这个pseudo-device时tcpdump也会提示上面LINUX_SLL (Linux cooked)那一段 需要说明的是cellular connection时,是有连接的服务,不存在网关(通过route -n可显示),网关在以太网里面才存在 抓包cellular connection时手机IP和该IP的下一跳为10网段一内网IP,而且每次连接后所分IP和traceroute到的下一跳IP都不同,例如现在手机IP是10.a,下一跳是10.b,关闭手机上网后马上再开,tcpdump结果看出手机IP为10.c而traceroute显示手机下一跳为10.d,另外,下下一跳为112.96.*.253,每次也不一样 那么两个手机能否互通呢?用同一位置同一运营商(说明连接到同一基站)的手机上运行Fing这个app,里面有ping工具,去ping测刚才手机的IP,无反应,而ping手机IP下一跳是通的,有没有可能是手机本身对ping无回应呢?同时连接两个手机到同一wifi,互ping都是OK的,会不会是手机针对cellular connection的ping无回应而对wifi的ping回应?我的分析和判断:从执行tcpdump后的显示来看,tcpdump把wifi和cellular看做不同的网络设备,wifi下为wlan0,cellular connection时为rmnet0,底层是不同的硬件在处理,而到了IP这一层,则由系统即软件处理,不同设备提供的信息到了这一层都统一处理,按我的判断,是上联路由根本没有将ping测的数据包转发至目的地,即同一基站下的用户之间并不互通,这一点可通过被ping手机上运行./tcpdump并未显示数据包到达 来验证;还有没有可能是cellular模块本身不支持ping的ICMP?手机app来ping自己的IP,或者adb进入手机命令终端执行ping,是能够ping通自己的;另外,参考http://www.droidforums.net/threads/ssh-daemon-dropbear-on-android-2-0.9038/有的运营商会给手机提供外部IP且可以访问,这样的话cellular和wifi是一样的,如果运营商没提供公网IP或封了inbound的连接,cellular时就没法做服务来被直接访问,结合dynamic domain name service例如 http://no-ip.com 或 http://dyndns.com可以一试; 介绍GPRS原理的资料里面显示手机cellular connection的协议栈里面,应用层下面可以是IP也可以是X.25,现在用自己的3G手机测试,发现是走IP,现在IP化的趋势是不可阻挡了 最后抓包的结果存为文件后使用工具进行分析,wireshark是一个不错的选择 后记: 今天发现Windows下载adb-setup-1.4.3.exe解压得到adb.exe及相关dll,直接执行即可,adb实际版本为1.0.32,前提条件是驱动装好 驱动有MTP驱动(媒体设备、存储相关)、PTP驱动(摄像头相关)、adb驱动,运行adb.exe需要的是adb驱动; 手机上有/sbin/adbd和/system/bin/adb,从文件创建时间来看是系统安装的时候就有的 所以对于一个新手机来说,手机开启USB调试并在随后点击“信任”,PC装好驱动,执行解压的adb.exe即可,如需执行su则手机需root 后记2: adb shell进入手机后su,tcpdump -D显示设备,手机连接wifi或开启wifi热点时会出现wlan0,开启cellular connection时会出现rmnet0,手机开启USB热点时会出现rndis0 后记3: Windows下通过adb进入手机安装busybox(集成多个linux基础命令,比Android自带toolbox强大),执行ls和vi时会乱码,ls会在文件名前后出现乱码,alias ls='ls --color=never'禁止颜色后正常,但vi也是乱码,更好的解决方法是更换终端,用putty替代powershell或cmd,putty设置IP为127.0.0.1端口5037(具体端口需netstat查看,第一个连接默认5037),模式为raw,开启putty前先查看进程确保adb服务开启,没开启的话可执行adb任一命令如adb devices来开启服务,putty回车后输入0012host:transport-usb回车返回OKAY(注意输入时不能有其他字符包括删除、上下左右等),继续输入0006shell:后回车即进入shell,后面的操作和linux环境一样;或者用针对adb优化过的putty,模式选择adb,主机填transport-usb,(也可通过wifi连接,手机adbd打开监听默认端口5555,PC上的server默认监听5037,客户端putty或adb连上PC服务同时PC服务连接手机:5555,网上相关教程很多,但考虑到手机续航能力以及现有诸多app的完善,更重要的是安全隐患,还是usb靠谱),原帖网址:http://forum.xda-developers.com/showthread.php?t=803223以下是其中的节选: We all know that running "adb shell" from the command line is pretty crap, and when using a latter busybox version which has coloring support it's ultimately crap. One workaround was usually to start a telnet server on the phone, and use putty to connect to that telnet server. Actually there is a more easier way to do that which also works for non rooted phones. Actually the Android Debug Bridge has a terminal connection feature (roughly speaking), which will be enabled after you connect to the adb server in "0006shell:" mode. You can actually use the putty to connect to this interface always, by setting the following things: - Turn off line discipline in settings - Use RAW mode to connect to localhost:5037 - Enter "0012host:transport-usb" (without quotes) - Enter "0006shell:" (without quotes) Now you've got a full fledged connection to your device. The main drawback is that it's tedious to repeat the above all the time, so I've made some modifications to the putty binary that adds a new type of connection, called "Adb" To use the enhanced putty (via USB): - Select Adb from the connection type list - Enter "transport-usb" in the host (or any other connection string, check the adb socket interface documentation if you need something else than connecting via usb) - Enter 5037 as port, if it's not already set there. - Connect and enjoy (you might also save this connection, so next time you only have to double-click on the settings) To use this via wireless adb: - Connect to wireless adb using a command shell: "adb connect IP:PORT" (substitute ip and port for the real values) - Enter "transport-any" in the host - Enter 5037 as port if it's not already set there - Connect and enjoy To use this via the android emulator: - Enter "transport-local" in the host. Everything else is the same If you have multiple devices (for example multiple devices connected to usb and/or wileressly) - Enter "transport:serial-number" in the host, where you substitute "serial-number" with the serial of the device you get by using "adb devices". Everything else is the same. DL and source: http://github.com/sztupy/adbputty/downloads 后记4: 最近发现安装wireshark时有一个androiddump默认没选,重新选中安装后,居然可以实时跟踪手机包:1. 手机连上电脑并打开USB调试;2. adb需启动;3. 打开wireshark界面自动显示Android的几个相关interfaces,选中即可进行跟踪 参见:https://www.wireshark.org/docs/man-pages/androiddump.html

Labels: , , ,

Sunday, February 7, 2016

修改Android系统/system/etc/hosts文件

相关知识: 修改hosts文件可在一定程度上应对GFW,手机Android系统也一样 win7下的hosts文件在C:\Windows\System32\drivers\etc Linux下的hosts文件在/etc/hosts 而Android的hosts文件则在/system/etc下面(注意文件编码为Unix:vi中set fileformat=unix),如何修改? 方法: 可直接root手机之后用文件浏览器如RE-Root Explorer去操作替换文件,也可以连接到电脑使用adb(Android Debug Bridge)去操作,Linux里面可以直接安装adb但是Windows下面没找到直接安装的,在Android的官网需先安装Android SDK再在里面在线下载最新版的platform-tools其中就包括adb,而Android SDK又需要安装Java,太麻烦,于是直接利用刷机精灵自带的adb小工具,点进去出来一个命令行,可以直接运行adb命令,仔细一看,是adb.bat文件,里面显示实际执行的是shuame_helper.exe,直接进入powershell或cmd执行shuame_helper.exe也可;需要注意的是adb无需手机root但有些操作需要,所以最好先root; 具体过程: PC上执行的adb这个命令可直接在手机Android系统和PC之间传送文件,前提是具备相关读写权限; adb help显示帮助; adb devices显示连接到PC具体是哪些设备‘ adb remount 比较怪的是有时/system挂载成只读,帮助里面说执行adb remount后挂载为读写(实际执行后并没作用); adb pull 从Android系统拖文件过来,实际可行; adb push 推送文件到Android系统(实际执行的时候提示没有权限,或者只读系统); adb shell 这个很有用,直接进入手机Android系统里面操作,可以看成是Linux变种,很多命令没有,没关系,想办法操作,现在PC上准备好hosts文件放到SD卡上,然后adb shell进入Android系统再su进入root用户,执行操作,包括删除rm、新增touch等均提示只读系统,而前一次手机连接都可以,比较怪异,于是mount显示/system挂载点,然后 mount -rw -o remount 挂载点 /system 执行完成后,对/system有读写权限 下一步执行: mv /storage/extSdCard/文件名 /system/etc/文件名 移动过来后所属用户root,但所属组有问题,chgrp提示没有,于是touch一个文件,用户和组均为root,chmod和原root一样,再cat 文件 > 新文件,这样新文件除了名字之外的用户权限、所属用户、所属组均和原hosts一样,下一步删除hosts,改名新文件为hosts,OK,直接打开https://www.google.com/ncr 最后恢复手机/system的权限为最初的只读:mount -r -o remount 挂载点 /system,执行完毕后mount命令显示和最初一样:ro只读,保险起见再重启手机,结束 后记: adb是一个终端程序,其实也可使用其他的terminal access programs终端访问程序(手机上的app),达到同样的效果 后记2: PC直接装好驱动,和adb,手机打开USB调试并信任PC,则可直接进入手机命令行,手机root后可执行su

Labels: , , ,

Sunday, January 3, 2016

关于 Google Play Store 闪退

2014-10-16 Google所有apk都可以装在Android用户自己的/data/app/里面,除了Google Play Store,商店要装在/system/app/里面否则闪退。 /data/app/或/system/app/里面: com.google.android.apps.maps-2.apk(地图)、com.google.android.backup-1.apk、com.google.android.feedback-1.apk、com.google.android.gm-2.apk(gmail)、com.google.android.gms-2.apk(Google Play 服务)、com.google.android.gfs-1.apk(Google服务框架)、com.google.android.gsf.login-1.apk、com.google.android.partnersetup-1.apk、com.google.android.street-1.apk(街景)、com.google.android.syncadapters.contacts-1.apk(通讯录同步)、com.google.android.tts-2.apk(文字转语音) 必须在/system/app/里面: com.android.vending-1.apk(Google Play Store) 以上有“-1”表示初装,“-2”表示版本升级过一次。以上所有apk名均为安装后的文件名。

Labels: ,

Friday, January 24, 2014

HTC G11 (s710e) 刷机过程

2012-07-22 20:40 s710e自带很多软件,而且无法获取root权限删除,只好刷机 查看机器是否S-OFF,查看存储卡是否FAT32,并在电脑上装好手机驱动 确认后,将PG32IMG.zip下载到存储卡根目录,更新recovery。(之前用adb+fastboot没能成功安装recovery,不知道是数据线接触不良问题还是驱动问题) 之后拷入从刷机精灵下载的“HTC Incredible S 原生CM9 豪华相机 索尼引擎.zip”,重启进入recovery选择相关选项即可

Labels: ,