最新文章

NSA tools

标签: injection security python shadowbroker tool 介绍 去年八月,ShadowBroker 发布了一套从NSA那偷来的工具,一个GitHub库对此fork了一份: 工具库 在这份文档中,我们将重点转移到ETERNALBLUE上(针对win和插件DOUBLEPULSAR)。为了使这波操作离开要命的敲代码。我们会使用FUZZBUUNCH, 这可是NSA他娘的意大利炮。 为啥选Eternalblue 和 DoublePulsar 在暗影众多的 win爆 工具中, Eternalblue 是 唯一一个可以用来攻击win7 和 win server 2008 而 不需要权限 的。 除此之外,我们可以用插件 DOUBLEPLUSAR 来注入到目标远程端一个恶意的DLL。 记住了小伙鸡, 我们可以注入任何我们想要的 DLL; 我们将用 Empire 创建一个恶意的DLL 来 获取一个 反向连接(从目标鸡到攻击鸡) 安装部分 我们需要三台机器在同一个当地网络(LAN, local area network) 1. 目标鸡(Win 7/2008) 一只鸡配备了 win7/2008 可以用来当目标鸡。然后这只鸡我们只要知道它的IP就行了。 2. 攻击公鸡 这只鸡要配备上我们的子弹, 首先它得是 […]

AQUATONE: A tool for domain flyovers

~~~~Forked by https://github.com/michenriksen/aquatone Knowing the attack surface of something is critical for both defending and attacking it. When it comes to domain names, a very common approach for uncovering the attack surface is to discover its subdomains. Subdomains will increase the number of potential target sites as well as uncover IP ranges to probe further. […]

NodeBB 安装

NodeBB 安装论坛 原文连接如下: https://www.vultr.com/docs/installing-nodebb-on-ubuntu-14-04 实测环境: 腾讯云 ubuntu 16.04 NodeBB 是一款论坛软件, 它基于node因此安装起来有点像Ghost(基于node的一款博客框架,类似的还有hexo等) 这篇文章将说明如何在 Ubuntu 14.04 版本上安装 NodeBB,(其实我是Ubuntu 16.04) 1. 必要安装 安装必要的 git, nodejs, npm, redis and imagemagick. apt-get install git nodejs nodejs-legacy npm redis-server imagemagick build-essential 2. 安装 NodeBB 从git仓库上下载下来NodeBB重命名目录为 nodebb git clone -b v0.8.x https://github.com/NodeBB/NodeBB.git nodebb 进入 nodebb cd nodebb 使用npm来进行预安装。这个过程比较长,因此你得有点耐心 npm install --production 然后开启 […]

An animation like light card

Talk is cheap, note is there , show you code. <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <style media="screen"> body{ background-color: #000; } #wrap{ position: relative; /*the img size and make it get center*/ width: 130px; height: 200px; margin: 150px auto; transform-style: preserve-3d; /*perspective: 1000px;*/ /*make the whole items of wrap rotate by the […]

WebShell and Threat Intelligence

Good image, hope it could be useful for u. And then, four points you need to pay a little attention: Traffic monitor ”CaiDao” ‘s payload are all in request body. “Weevely“‘s payload are all in cookie and spreate to make up again. File moitor Always include system method Encrypt is very common Attack origin Tor […]

Atom measures

forked by https://github.com/futantan/atom 文件切换 ctrl-shift-s 保存所有打开的文件 cmd-shift-o 打开目录 cmd-\ 显示或隐藏目录树 ctrl-0 焦点移到目录树 目录树下,使用a,m,delete来增加,修改和删除 cmd-t或cmd-p 查找文件 cmd-b 在打开的文件之间切换 cmd-shift-b 只搜索从上次git commit后修改或者新增的文件 导航 (等价于上下左右) ctrl-p 前一行 ctrl-n 后一行 ctrl-f 前一个字符 ctrl-b 后一个字符 alt-B, alt-left 移动到单词开始 alt-F, alt-right 移动到单词末尾 cmd-right, ctrl-E 移动到一行结束 cmd-left, ctrl-A 移动到一行开始 cmd-up 移动到文件开始 cmd-down 移动到文件结束 ctrl-g 移动到指定行 row:column 处 cmd-r 在方法之间跳转 目录树操作 cmd-\ 或者 […]

Cannot read property ‘glob’ of null

Angular2 firstly run project on npm occurred error. Cannot read property ‘glob’ of null Win 10 try to delete c:/users/username/angular~.json then run again.

Read Me!

Best-websites-a-programmer-should-visit https://github.com/sdmg15/Best-websites-a-programmer-should-visit Some useful websites for programmers. When learning CS there are some useful sites you must know to get always informed in order to do your technologies eve and learn new things. Here is a non exhaustive list of some sites you should visit, this list will get updated as soon as I […]

403 forbidden(Spider error)

When I run a spider on Taobao get the error 403. As the above page image, it receive the response successfully. But if you open the request url on a new web, it will receive 403 forbidden, I do not know what happened there. I try imitate the request by using postman but also got […]

Strategy Pattern

Conception Strategy pattern (also known as the policy pattern) design pattern that enables an algorithm’s behavior to be selected at runtime. Intent Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it. Capture the abstraction in an interface, bury implementation details […]

CSS Layout

This tutorial teaches the css fundamentals that were collected by these sites as follows and maybe keep on updating in the future. And I may not told you what is a box model such questions. You should know the reason. learnlayout ruanyifeng Position let us get started with the static. The static value which belongs […]

msqli_* prevent SQL injection

To avoid your code be vulnerable, especially for preventing SQL injection. You may need the mysqli_* function and prepare statement of it to make it. I will make some examples, such like this: The SELECT sentence like this: $stmt = $conn->prepare('SELECT column_name FROM table_name WHERE column_name = ?'); $stmt->bind_param('s', $varname); $stmt->execute(); $result = $stmt->get_result(); The […]

kali install pip3

Today I wanna to install the pip3 on kali linux 2016.2, but find a question: There only be pip2 which is package manager for python 2.7 on the kali linux 2016.2. I try to find the question on baidu search engine, but get no useful info which makes me depressed. Then I try to install […]

CDN to Real IP

Feeling boring these days, not know who I am, not know what to do, not know where I should go. Maybe I got older. Who knows that? First let us know about cdn. The next content list as follows from wiki. A content delivery network or content distribution network (CDN) is a globally distributed network […]

php 反序列化漏洞概览

个人感觉参数可控是很多安全问题的根源 php反序列化漏洞原链接 序列化是啥 就理解成方便数据运输做的一种压缩优化就行 比方说一个 $stooges = array('Moe','Larry','Curly'); $new = serialize($stooges); print_r($new); echo "<br />"; print_r(unserialize($new)); 结果: a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";} 可以看出来乱七八糟的对象最终简化为字符串 所以可以猜出来咋用了 就是构造语句进行序列化 然后在对应进行反序列化的接口 利用变量可控性执行命令 这个过程中 两个比较注意的地方 一个是 魔术方法 即通过反序列化调用生成对象执行析构函数等 利用接口对应变量的不安全权限 对构造析构toString等方法进行利用 比如web Application 源码如下 <?php include 'logfile.php'; class FileClass { public $filename = 'error.log'; public function __toString() { return file_get_contents($this->filename); } } class User { public […]

PhpStorm 配置php7.0环境

php是我见过最恶心需要配环境的 php小白一个 喜欢做死 于是选了配置phpstorm环境 网上的教程大都很老了 所以来更一波 下载xmapp7..0版本 是的你没看错,就是32位 是的你没看错,我用了集成包而不是单独配 是的你没看错我下的是7.0版本而不是最新的版本 关于安装 只有一个要强调 这个mysql必须要选上 无论你电脑装没装MySQL 可能有尝试过phpstudy的 就是那个装了之后那个自己的MySQL就会变红停止 这个不用担心 xampp不会影响,很稳 然后启动后要配置一下 ssl那个文件里面所有的443改成8001 phpmyadmin那个里面有个password改成自己数据库的密码 第二个有点麻烦,待会说 下载xdebug 首先打开apache 然后输入localhost/dashboard/phpinfo.php 进入网址后右键viewpagesource,反正就是查看源码 然后ctrl a 全选后复制一波 找到这个地方粘上 xdebug自定义 然后analyze一下下载对应的xdebug.dll 放到xmapp下的php下的ext最好重命名一下 为xdebug.dll 以及对应着设置下前面提到的第二个文件php.ini 找到最后添加类似如下配置 按官方说明来 最后一行没有引号 如何知道自己安装成功了? 检查如下网址 http://localhost/dashboard/phpinfo.php 如存在xdebug下图,即可 科学一下 从chrome商店下个 xdebug helper 然后配置一下这个插件的idekey为PhpStorm 最后就是配置phpstorm了 终于最后一步了 新建项目于xampp/htdc/你的项目名 然后 添加一下服务器打开debug就可以跑了(apache别关) starturl填项目名,然后打开两个地方,一个是chrome那个debug插件 设置为debug形式 另一个是phpstorm里那个看起来有点像电话然后一直红色的禁止符号让人很不顺眼那个 […]

php 恶心的闭合标签

写了段php代码 在微信小程序check返回的response时发现多了个回车换行 查了查 特么地可真有意思 以前学习html 不闭合标签容易吃兼容的亏 就比如以前解决的一个问题 关于p标签引起的不对齐问题 但是今天让php摆了一道 关于PHP闭合标签官方解释是: PHP闭合标签”?>”在PHP中对PHP的分析器是可选的。 但是,如果使用闭合标签,任何由开发者,用户, 或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。 因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。 这样有利于你确定这个文件已经结束而不是被删节的。 一句话,纯php就这么写 <?php echo "Here's my code!"; /* End of file myfile.php */ /* Location: ./system/modules/mymodule/myfile.php */ 而不是 <?php echo "Here's my code!"; ?>

Https 升级(free)

环境如下 Ubuntu 16.04, Apache2 (阿里云) 工具如下 https://certbot.eff.org/#ubuntuxenial-apache 命令如下: $ apt install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-apache $ certbot --apache in this step, you need enter 1. domain name 2. your email 3. Agree the service term 4. share your email to subscribe or not 5. make […]

Selenium Qzone登陆

import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.maximize_window() driver.get("http://i.qq.com/") try: driver.find_element_by_id('login_div') a = True except: a = False if a == True: driver.switch_to.frame('login_frame') driver.find_element_by_id('switcher_plogin').click() driver.find_element_by_id('u').clear()#选择用户名框 driver.find_element_by_id('u').send_keys('QQ') driver.find_element_by_id('p').clear() driver.find_element_by_id('p').send_keys('password') driver.find_element_by_id('login_button').click() time.sleep(3) print(driver.page_source) driver.close() 一开始直接找登陆的账号密码Element 但是却报错显示未查找到该Element 于是打印了下 page_source,查了下view-page 发现的确未有改元素 拜读了大佬的博客才知道这里使用了iframe加载了登陆框 然后就是定位该框,点击账号密码登录输入,点击登陆即可

Scrapy 初窥笔记

scrapy startproject YourProjectName 建立scrapy项目 开始爬虫 scrapy crawl SpiderName 开始执行爬虫 以上仿麻烦 根目录新建执行文件 from scrapy.cmdline import execute execute(['scrapy', 'crawl', 'dingdian']) 顶点为spider的name 定义爬取的字段 就比如说爬小说 字段有 小说作者,小说内容等 Item文件下定义 class DingdianItem(scrapy.Item): author = scrapy.Field() content = scrapy.Field() 如上,定义一定要继承Item 然后字段皆为Field(), 没有其他类型 比Django要方便的多 开始写核心spider部分 spider以start_requests为初始函数,该函数必须yield一个可迭代对象 比如Request(url, call_back, meta) 参数说明url,即需要Request.get 的内容,call_back是一个parse函数,该函数可接受一个由刚才的get获取的response, meta是由上一个Request往这传的时候可以带上的参数 parse 最终要yield 或 return 一个或多个 Item,来进行后续处理 这里有个巨大的 坑: response尽量一次处理,不要在多个parse之间执行,因为所有的url,但凡被Request过,不会被二次请求,简单来说,url通常不能为response.url,如果你跟我一样踩到这个坑,注意这个解决方法 Scrapy的官方文档: http://doc.scrapy.org/en/latest/topics/request-response.html#scrapy.http.Request […]

github 部署hexo博客无效

问题: deploy后远程库没有出现对应生成的hexo文件 也无错误提示。 deploy: type: git repo: https://github.com/ReZeroS/ReZeroS.github.io.git branch: master 这三句中非常zz的一个地方,就是:后面一定要空一格!!!!!!

Android 第三方库方向索引

原文 https://github.com/wasabeef/awesome-android-libraries/blob/master/README.md List of Android Libraries This is an alphabetical list of libraries for Android development, the majority being actively maintained. UI/UX Library is here. Index Networking Image Loader Drawable Dependency Injections JSON O/R Mapping NoSQL Pub/Sub Logger Background Processing Fonts Video Parcelables Functional Programming Adding Java-8 Functional Programming Features Functional Reactive Programming Social Networks […]

Android Permission latest version

原文地址: https://developer.android.google.cn/reference/android/Manifest.permission.html (sublime正则替换好爽) String ACCESS_CHECKIN_PROPERTIES Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded. String ACCESS_COARSE_LOCATION Allows an app to access approximate location. String ACCESS_FINE_LOCATION Allows an app to access precise location. String ACCESS_LOCATION_EXTRA_COMMANDS Allows an application to access extra location provider commands. String ACCESS_NETWORK_STATE Allows applications […]

JetBrains 激活码

昨天(2017.2.25)到期了 于是google了个新的 CNEKJPQZEX-eyJsaWNlbnNlSWQiOiJDTkVLSlBRWkVYIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTgtMDEtMzAifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOC0wMS0zMCJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE4LTAxLTMwIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE4LTAxLTMwIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTgtMDEtMzAifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTgtMDEtMzAifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxOC0wMS0zMCJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE4LTAxLTMwIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTgtMDEtMzAifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxOC0wMS0zMCJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE4LTAxLTMwIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTgtMDEtMzAifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxOC0wMS0zMCJ9XSwiaGFzaCI6IjUxOTU1OTMvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-QOxwjWvRwJz6vo6J6adC3CJ4ukQHosbPYZ94URUVFna/Rbew8xK/M5gP3kAaPh6ZDveFdtMR1UBoumq3eCwXtXM3U3ls5noB4LIr+QplVlCj2pK5uNq7g/feyNyQcHpSXtvhIOnXDBLOecB05DOsxzm0p7ulGGJoAInmHeb9mc0eYjqc4RPpUQfh6HSYBnvEnKMlLF5bz4KEtzmsvvgA55CwzwQ3gRitm5Q/wUT7AQCBdjmBfNUjKVQL6TSjSDPp56FUdEs4Aab8LqstA2DIMbxocO64rvytmcUeIwu8Mi5uq87KQP5AQMSMYb59Inbd+dmVfx5cJo3fRS4/5s3/Hg==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog== 可用于 idea,pycharm, phpwebstorm等

渗透菜鸟概览

微信原文 ping 根据 hostname 获取 IP 寻找同一服务器上的其它网站,使用sameip.org. 开始采集信息 1. DNS records (A, NS, TXT, MX and SOA) 2. Web Server Type (Apache, IIS, Tomcat) 3. Registrar (the company that owns your domain) 4. Your name, address, email and phone 5. Scripts that your site uses (php, asp, asp.net, jsp, cfm) 6. Your server OS (Unix,Linux,Windows,Solaris) […]

(八)存储数据

通常Chrome扩展使用以下三种方法中的一种来储存数据 HTML5的localStorage 对于一般的扩展,“设置”这种简单的数据可以优先选择第一种,因为这种方法使用简单,可以看成是特殊的JavaScript变量; Chrome提供的存储API 对于结构稍微复杂一些的数据可以优先选择第二种,这种方法可以保存任意类型的数据,但需要异步调用Chrome的API,结果需要使用回调函数接收,不如第一种操作简单; Web SQL Database 使用的不算太多,因为需要使用SQL语句对数据库进行读写操作,较前两者更加复杂,但是对于数据量庞大的应用来说是个不错的选择 Chrome存储API Chrome为扩展应用提供了存储API,以便将扩展中需要保存的数据写入本地磁盘。Chrome提供的存储API可以说是对localStorage的改进,它与localStorage相比有以下区别: 如果储存区域指定为sync,数据可以自动同步 content_scripts可以直接读取数据,而不必通过background页面 首先 localStorage 是基于域名的,而 content_scripts 是注入到用户当前浏览页面中的,如果 content_scripts 直接读取 localStorage ,所读取到的数据是用户当前浏览页面所在域中的。所以通常的解决办法是content_scripts通过runtime.sendMessage和background通信,由background读写扩展所在域(通常是chrome-extension://extension-id/)的localStorage,然后再传递给content_scripts 在隐身模式下仍然可以读出之前存储的数据 读写速度更快 用户数据可以以对象的类型保存 使用Chrome存储API必须要在Manifest的permissions中声明storage,之后才有权限调用 Chrome存储API提供了2种储存区域,分别是sync和local 两种储存区域的区别在于,sync储存的区域会根据用户当前在Chrome上登陆的Google账户自动同步数据,当无可用网络连接可用时,sync区域对数据的读写和local区域对数据的读写行为一致 对于每种储存区域,Chrome又提供了5个方法,分别是 get方法即为读取数据,完整的方法为: chrome.storage.StorageArea.get(keys, function(result){ console.log(result); }); keys可以是字符串、包含多个字符串的数组或对象。如果keys是字符串,则和localStorage的用法类似;如果是数组,则相当于一次读取了多个数据;如果keys是对象,则会先读取以这个对象属性名为键值的数据,如果这个数据不存在则返回keys对象的属性值(比如keys为{'name':'Billy'},如果name这个值存在,就返回name原有的值,如果不存在就返回Billy)。如果keys为一个空数组([])或空对象({}),则返回一个空列表,如果keys为null,则返回所有存储的数据。 getBytesInUse方法为获取一个数据或多个数据所占用的总空间,返回结果的单位是字节,完整方法为: chrome.storage.StorageArea.getBytesInUse(keys, function(bytes){ console.log(bytes); }); 此处的keys只能为null、字符串或包含多个字符串的数组。 set方法为写入数据,完整方法为: chrome.storage.StorageArea.set(items, function(){ //do something }); items为对象类型,形式为键/值对。items的属性值如果是字符型、数字型和数组型,则储存的格式不会改变,但如果是对象型和函数型的,会被储存为“{}”,如果是日期型和正则型的,会被储存为它们的字符串形式。 remove方法为删除数据,完整方法为: chrome.storage.StorageArea.remove(keys, function(){ //do something }); 其中keys可以是字符串,也可以是包含多个字符串的数组。 […]

(七)扩展页面通信

Chrome提供了4个有关扩展页面间相互通信的接口,分别是runtime.sendMessage、runtime.onMessage、runtime.connect和runtime.onConnect Chrome提供的大部分API是不支持在 content_scripts 中运行的,但 runtime.sendMessage 和 runtime.onMessage 可以在 content_scripts 中运行,所以扩展的其他页面也可以同 content_scripts 相互通信。 runtime.sendMessage完整的方法为: chrome.runtime.sendMessage(extensionId, message, options, callback) 其中extensionId为所发送消息的目标扩展,如果不指定这个值,则默认为发起此消息的扩展本身 message为要发送的内容,类型随意,内容随意,比如可以是’Hello’,也可以是{action: ‘play’}、2013和[‘Jim’, ‘Tom’, ‘Kate’] options为对象类型,包含一个值为布尔型的includeTlsChannelId属性,此属性的值决定扩展发起此消息时是否要将TLS通道ID发送给监听此消息的外部扩展1,有关TLS的相关内容可以参考http://www.google.com/intl/zh-CN/chrome/browser/privacy/whitepaper.html#tls,这是有关加强用户连接安全性的技术,如果这个参数你捉摸不透,不必理睬它,options是一个可选参数 -callback是回调函数,用于接收返回结果,同样是一个可选参数。 此属性仅在扩展和网页间通信时才会用到。 runtime.onMessage完整的方法为: chrome.runtime.onMessage.addListener(callback) 此处的callback为必选参数,为回调函数。 callback接收到的参数有三个,分别是message、sender和sendResponse, 即消息内容、消息发送者相关信息和相应函数 其中sender对象包含4个属性,分别是tab、id、url和tlsChannelId,tab是发起消息的标签 为了进一步说明,下面举一个例子。 在popup.html中执行如下代码: chrome.runtime.sendMessage('Hello', function(response){ document.write(response); }); 在background中执行如下代码: chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){ if(message == 'Hello'){ sendResponse('Hello from background.'); } }); 查看popup.html页面会发现有输出“Hello from background.”。

Sympy 解方程

解普通方程 from sympy import * x = Symbol('x') y = Symbol('y') print solve([2 * x - y - 3, 3 * x + y - 7],[x, y]) 解微积分 from sympy import * n = Symbol('n') s = ((n+3)/(n+2))**n #无穷为两个小写o print limit(s, x, oo) 求定积分 from sympy import * t = Symbol('t') x = Symbol('x') m […]