玩转手机自动化测试

大家好,我是皮皮。

前言

之前我们玩过一些手机自动化软件,比如Airtest,ADB,通过这些软件我们可以和自己的手机进行关联,并且使用程序来代替我们本人来操作手机,今天我们要说的是另一款给力的自动化APP,这里要介绍的并不是Windows平台上的可执行文件哦,而是Android平台上的JavaScript IDE,更重要的一点就是这个工具是国人开发的,必须支持一个不是。而且AutoJs兼容性更好,传统的按键精灵,脚本精灵,虽然上手快,门槛低,但是他们是以坐标为基础,很容易出现分辨率的问题,而AutoJs则是以控件为基础,因而更强大,并且我们在玩自动化时是不需要Root的;那么,废话不多说,赶快让我们一睹为快这款强大的IDE吧。

一、安装AutoJs

为了运行Autojs脚本,我们需要使用Android平台,这里小编选择的是夜神模拟器,将我们下载好的AutoJs.apk安装到夜神模拟器中,下载地址:

https://u062.com/file/7715018-454641893

然后我们开启无障碍服务,即可打开Autojs并正常运行,如图:

玩转手机自动化测试

二、基本使用大全

要想进行脚本的编写,我们需要点击蓝色圆圈里的加号创建一个脚本文件,下面我们来创建一个简单的脚本,如下:

1.选择器

因为AutoJs有着JavaScript的部分特性,因此他也有选择器可供我们选择元素,总共有四种,如下:

ID 选择器
Text 选择器
ClassName 选择器
Desc 选择器

2.打开应用

在打开之前我们需要对Autojs进行授权,很简单,如下:

auto();//授权auto.js

然后我们就可以打开对应应用,比如我想打开浏览器,如下:

launchApp('浏览器')#打开浏览器

如果我们想自定义打开的应用了,通过输入的方法,增加一个交互,可以这样做,如下:

var app=rawInput("","");
launchApp(app);

我们还可以添加一个控制台,显示我们操作的进度,如下:

auto();
console.show() //显示控制台
log('hello') //控制台输出
console.log('开启浏览器') //控制台输出
sleep(1000)//休眠
var app=rawInput("",""); //自定义输入
launchApp(app);//运行App
玩转手机自动化测试

玩转手机自动化测试

我们还可以检查是否有Root权限,如下:

if(auto.waitFor()){
    toastLog('有权限')
    }
  else{
   toastLog('无权限')
      }

3.屏幕操作

setScreenMetrics(1080,1920); #屏幕大小
toast("欢迎大家来到我的世界,Helloworld ,520");#屏幕通知
toastLog(‘hello’) #屏幕通知+控制台日志
images.requestScreenCapture() #向系统申请屏幕截图权限
images.captureScreen() #截图
swipe(100,200,130,320,230)#滑动屏幕,只支持安卓7.0以上
img=images.load('读取本地或者网络图片')#读取
images.save('图片来源','图片名')#保存
var c=findColor(img.'颜色十六进制')#寻找对应颜色对象
c.x c.y #对应颜色的横纵坐标
images.findColorEquals(img,color[, x, y, width, height]) #区域找色
images.findColorInRegion(img,color[, x, y, width, height])
device.width #取屏幕宽度
device.height #取屏幕高度
toast('欢迎光临')
if(requestScreenCapture()){
    console.log('截图成功')
    }
  else{
      console.log('截图失败')
      }
玩转手机自动化测试

玩转手机自动化测试

我们还可以保存网络上的图片到设备中,如:

var pic=images.load('http://wnk5.fulitmm.cn/comm/2020053009318366378.jpg');
images.save(pic,'/sdcard/mm.jpg')
玩转手机自动化测试

另外我们还可以通过找色来定位目标,如图:

玩转手机自动化测试

可以看到横纵标125。

4.返回退出

back() #返回
exit() #退出

5.休眠

如果我们想让程序等待一段时间,可以使用休眠功能,如下:

sleep(3000);#休眠

6.文本操作

有时候我们进入应用需要进行一些操作,这个时候我们可以通过找寻应用中文本的位置来进行精确操作,如下:

text('请输入网址')#找文本

7.Auto Js UI

这里要说的是,虽然我们之前的操作比较方便,但是如果你想把这些操作做成一个界面的话,就需要用到UI了,这样就会更方便了,像一些自动化工具,比如自动电击器就是这个原理了,我们来看一个最简单的例子,如下:

"ui";
ui.layout(
    <vertical foreground="#BBFFFF" bg='#F5F5F5'> #垂直布局加前景背景色设置
        <input id="name" text="请输入名字"/>#输入框
        <button id="one" text="按钮1" alpha="0.6" w="200dp" textSize="10sp"/>#按钮
        <button class="two" w="100dp" text="按钮2"/>
    <horizontal>#水平布局
        <button w="auto" alpha="0.8" text="按钮3"/>
        <button w="*" text="按钮4"/>
    </horizontal>
    </vertical>
   
    
);
ui.one.click(function(){#元素点击事件
    var n=ui.name.getText();
    toast(n)
    })
玩转手机自动化测试

其实UI控件中的方法基本大部分和JavaScript的方法一样,掌握了JavaScript你就可以非常轻松的使用UI控件了。

三、总结

Autojs主要就是用于我们的手机设备的脚本编写,所以与ADB也会有很多相似之处,可以这么说,只要你掌握了ADB和JavaScript,掌握这就跟喝水那么简单。

对了,还要跟大家补充一句,那就是Autojs的在线官方文档地址:

https://hyb1996.github.io/AutoJs-Docs/#/

上面介绍的有很多方面,如果你不方便每次都联网查询的话,可以结合咱们前几天讲的整站爬取方案哦。

盘点那些年我们一起玩过的网络安全工具

大家好,我是IT共享者,人称皮皮。这篇文章,皮皮给大家盘点那些年,我们一起玩过的网络安全工具。

一、反恶意代码软件

1.Malwarebytes

这是一个检测和删除恶意的软件,包括蠕虫,木马,后门,流氓,拨号器,间谍软件等等。快如闪电的扫描速度,具有隔离功能,并让您方便的恢复。包含额外的实用工具,以帮助手动删除恶意软件。分为两个版本,Pro和Free,Pro版相比与Free版功能要多了:实时监控防护;启发式保护;恶意网站保护,阻止访问已知的零日恶意Web内容;

2.ClamAV

ClamAV是一款C语言开发的开源病毒扫描工具用于检测木马/病毒/恶意软件,它提供了一个灵活且可扩展的多线程守护程序,命令行扫描程序以及用于通过Internet自动更新的工具。它是一个命令行工具,下载地址:
http://www.clamav.net/download.html。

3.VirusTotal

VirusTotal 是一个知名的在线病毒木马及恶意软件的分析服务,可分析提交的文件中是否包含已知病毒和其他恶意软件。因为它是在线查毒网站,所以性能可能不如软件查毒来的强大,地址:

https://www.virustotal.com/gui/home/upload

二、扫描工具

1.Ike-scan

这是一个命令行工具,它使用IKE协议来发现,识别和测试IPsec VPN服务器。

2.THC Amap

THC Amap是确定给定端口上侦听哪些应用程序的好工具,它甚至知道如何解析Nmap输出文件。同样的。他也是个命令行工具,下载地址:

https://u062.com/file/7715018-454887771

3.NBTScan

NBTScan是用于扫描IP网络以获取NetBIOS名称信息的程序,它向提供范围内的每个地址发送NetBIOS状态查询。对于每个响应的主机,它列出了IP地址,NetBIOS计算机名称,登录的用户名和MAC地址。同样的,也是个命令行工具,下载地址:

https://u062.com/file/7715018-454887777

三、加密工具

1.OpenSSH/PuTTY

这三者想必大家多多少少都接触过,主要用作登陆连接远程服务器加密。大多数Linux用户都运行着OpenSSH,而Windows用户则更喜欢Putty。OpenSSH主要是以命令行为主,而Putty带有GUI界面。OpenSSH:
https://u062.com/file/7715018-450420187,PuTTY:

https://u062.com/file/7715018-450422901

2.TrueCrypt

该工具可用于Linux Mac 和Windows系统,并且是开源的磁盘加密系统。下载地址:

https://u062.com/file/7715018-454915017

3.OpenVPN

OpenVPN是一个开放源代码SSL VPN软件包,它可以适应多种配置,包括远程访问,站点到站点VPN,WiFi安全以及具有负载平衡。它也是一个命令行工具。

4.KeePass

KeePass是一个免费密码管理器,它使用起来是很方便的。它存储许多由一个主密码解锁的密码。这个想法是只需要记住一个高质量的密码,并且仍然能够为各种帐户使用唯一的密码。它具有自动在Web表单中填写密码的功能。下载地址:

https://u062.com/file/7715018-454914895

四、入侵检测系统

1.Snort

该网络入侵检测和防御系统擅长IP网络上的流量分析和数据包记录,通过协议分析,内容搜索和各种预处理器,Snort可检测数千种蠕虫,漏洞利用尝试,端口扫描和其他可疑行为。下载地址:

https://www.snort.org/

2.OSSIM

OSSIM代表开源安全信息管理。其目标是提供工具的全面汇编,这些工具在一起工作时,可以为网络/安全管理员提供有关网络,主机,物理访问设备和服务器的各个方面的详细视图,下载地址:

https://cybersecurity.att.com/products/ossim/download

五、端口扫描器

1.Angry IP Scanner

Angry IP Scanner是一个小型的开源Java应用程序,它可以执行 Ping扫描和端口扫描。下载地址:

https://u062.com/file/7715018-454890654

2.NetScanTools

NetScanTools是Windows的40多个网络实用程序的集合,在设计时考虑了简单的用户界面。它包括DNS工具,Ping和端口扫描程序,Traceroute和其他实用程序。下载地址:

https://u062.com/file/7715018-454891073

六、漏洞利用工具

1.W3af

W3af是一个非常流行,强大且灵活的框架,用于查找和利用Web应用程序漏洞。它易于使用和扩展,并具有数十种Web评估和开发插件。下载地址:

http://w3af.org/

2.Sqlmap

这个小编之前跟大家说过,很强大的SQL注入和漏洞查找工具。下载地址:

https://u062.com/file/7715018-453776489

3.Social Engineer Toolkit

Social-Engineer Toolkit是一个为社会工程设计的开源渗透测试框架。其中的SET具有许多自定义攻击向量,可让您快速进行可信的攻击。下载地址:
https://github.com/trustedsec/social-engineer-toolkit,这是一个Python安装文件的下载地址。不过很抱歉的是目前仅支持Linux和Mac Os X 系统。

4.Netsparker

Netsparker是一个Web应用程序安全扫描程序,同时支持检测和利用漏洞。它旨在通过在成功利用或以其他方式测试漏洞后仅报告已确认的漏洞,从而实现无误。下载地址:
https://u062.com/file/7715018-454914691

七、监控工具

1.Ettercap

Ettercap是针对中级局域网攻击者的套件。它具有实时连接嗅探,动态内容过滤以及许多其他有趣的技巧。它支持对许多协议(甚至是加密协议)进行主动和被动剖析,并包括许多用于网络和主机分析的功能。下载地址:

https://u062.com/file/7715018-454894010

2.P0f

P0f能够仅通过检查捕获的数据包来识别目标主机的操作系统,即使该设备位于数据包防火墙之后。P0f不会直接或间接产生任何其他网络流量。没有名称查找,没有神秘的探查,没有ARIN查询,什么都没有。在高级用户手中,P0f可以检测防火墙的存在,NAT的使用,负载平衡器的存在等等!下载地址:

https://u062.com/file/7715018-454910603

3.Nagios

Nagios是系统和网络监视应用程序。它会监视您指定的主机和服务,并在情况变坏或变好时提醒您。它的许多功能包括监视网络服务(SMTP,POP3,HTTP,NNTP,ICMP等),监视主机资源(处理器负载,磁盘使用情况等)。下载地址:

https://u062.com/file/7715018-454910403

4.NetWitness NextGen

NetWitness NextGen是网络安全监视器。监视器的核心是解码器子系统,该子系统记录网络流量以进行分析。

八、网络代理

1.Paros proxy

基于Java的Web代理,用于评估Web应用程序漏洞。它支持即时编辑/查看HTTP / HTTPS消息,以更改Cookie和表单字段等项目。它包括Web流量记录器,Web 爬虫,哈希计算器和用于测试常见Web应用程序攻击(例如SQL注入和跨站脚本)的扫描程序。下载地址:

https://u062.com/file/7715018-454911937

2.Ratproxy

Ratproxy是半自动化的,很大程度上是被动的Web应用程序安全审核工具。它旨在补充通常用于此任务的主动搜寻器和人工代理,并基于对现有用户,用户和用户的观察,专门针对潜在问题和与安全性相关的设计模式进行了准确,灵敏的检测和自动注释,并进行了优化。在复杂的Web 2.0环境中启动流量。下载地址:

http://code.google.com/p/ratproxy/

3.Sslstrip

Sslstrip是一个SSL剥离代理,旨在使未加密的HTTP会话看起来尽可能像HTTPS会话。它将https链接转换为http或具有已知私钥的https。它甚至为安全通道的假象提供了一个挂锁图标。通常,可以从HTTP页面上的重定向访问许多HTTPS站点,并且许多用户在未升级其连接时不会注意到。

九、Web漏洞扫描

1.Burp Suite

Burp Suite是用于攻击Web应用程序的集成平台。它包含各种工具,它们之间具有众多接口,旨在促进并加快攻击应用程序的过程。所有工具共享用于处理和显示HTTP消息,持久性,身份验证,代理,日志记录,警报和可扩展性的相同框架。下载地址:

https://u062.com/file/7715018-454914171

2.W3af

W3af是一个非常流行,强大且灵活的框架,用于查找和利用Web应用程序漏洞。下载地址:

https://u062.com/file/7715018-454914299

十、无线工具

1.Aircrack

Aircrack是一套用于802.11a / b / g WEP和WPA破解的工具。一旦收集了足够的加密数据包,它就会实施最著名的破解算法来恢复无线密钥。。该套件包含十几种离散工具,包括airodump(802.11数据包捕获程序),aireplay(802.11数据包注入程序),aircrack(静态WEP和WPA-PSK破解)和airdecap(解密WEP / WPA捕获文件)。下载地址:

https://u062.com/file/7715018-454909946

2.Netstumbler

Netstumbler是最知名的Windows工具,用于查找开放的无线访问点,该工具当前是免费的,但仅Windows且未提供源代码。下载地址:

https://u062.com/file/7715018-454909730

3.Kismet

Kismet是基于控制台的802.11第2层无线网络检测器,嗅探器和入侵检测系统。它通过被动嗅探来识别网络,并且甚至可以隐藏正在使用的隐藏网络。它可以通过嗅探TCP,UDP,ARP和DHCP数据包来自动检测网络IP块。下载地址:

https://u062.com/file/7715018-454898962

4.InSSIDer

InSSIDer是适用于Windows,OS X和Android的无线网络扫描仪。并且能在64位Windows和Windows Vista上正常运行。InSSIDer可以找到开放的无线接入点,跟踪一段时间内的信号强度,并通过GPS记录保存日志。下载地址:

https://u062.com/file/7715018-454909508

十一、Rootkit检测器

1.Sysinternals

Sysinternals提供了许多小型Windows实用程序,这些实用程序对于低级Windows黑客非常有用。

下载地址:

https://u062.com/file/7715018-454901712

2.Tripwire

Tripwire是一种工具,可以帮助系统管理员和用户监视一组指定的文件是否有任何更改。下载地址:

https://u062.com/file/7715018-454909364

3.AIDE

AIDE(高级入侵检测环境)是Rootkit检测器,是Tripwire的免费替代品。它对重要的系统文件进行加密哈希并将其存储在数据库中。而且它是一个免费的工具,只不过广告比较多。下载地址:

https://u062.com/file/7715018-454908278

十二、封包嗅探器

1.Wireshark

这个就不多说了,用过的都知道它是一个十分强大的网络嗅探抓包工具,正是因为太强大,导致我们用的都还不够深入。下载地址:
https://u062.com/file/7715018-454908568。

2.Tcpdump

他不像Wireshark那么强大,拥有漂亮的GUI界面,但是他胜在实用而且资源占用率很小。下载地址:

https://u062.com/file/7715018-454909158

十三、总结

看完这些相信大家会对里面的内容非常感兴趣,因为身为一个网络安全方面的小白,还是很有必要接触这些工具的,毕竟只有先使用这些功能,我们才能更加了解这些功能。

盘点3种Python网络爬虫过程中的中文乱码的处理方法

大家好,我是Python进阶者。前几天给大家分享了一些乱码问题的文章,感兴趣的小伙伴可以前往:UnicodeEncodeError: ‘gbk’ codec can’t encode character解决方法,这里再次给大家祭出网络爬虫过程中三种中文乱码的处理方案,希望对大家的学习有所帮助。

前言

前几天有个粉丝在Python交流群里问了一道关于使用Python网络爬虫过程中中文乱码的问题,如下图所示。

看上去确实头大,对于爬虫初学者来说,这个乱码摆在自己面前,犹如拦路虎一般难顶。不过别慌,小编在这里给大家整理了三种方法,专门用于针对中文乱码的,希望大家在后面再次遇到中文乱码的问题,在此处可以得到灵感!

一、思路

其实解决问题的关键点就是在于一点,就是将乱码的部分进行处理,而处理的方案主要可以从两个方面进行出发。其一是针对整体网页进行提前编码,其二是针对局部具体中文乱码的部分进行编码处理。这里例举3种方法,肯定还有其他的方法的,也欢迎大家在评论区谏言。

二、分析

其实关于中文乱码的表现形式有很多,但是常见的两种如下:

1、当出现网页编码为gbk,获取到的内容在控制台打印类似如下情况的时候:

ÃÀÅ® µçÄÔ×À ¼üÅÌ »ú·¿ ¿É°® С½ã½ã4k±ÚÖ½

2、当出现网页编码为gbk,获取到的内容在控制台打印类似如下情况的时候:

�װŮ�� ��Ů ˮ СϪ Ψ��

虽然看上去控制台输出正常,没有报错:

Process finished with exit code 0

但是输出的中文内容,却不是普通人能看得懂的。

这种情况下的话,就可以通过使用本文给出的三种方法进行解决,屡试不爽!

三、具体实现

1)方法一:将requests.get().text改为requests.get().content

我们可以看到通过text()方法获取到的源码,之后进行打印输出的话,确实是会存在乱码的,如下图所示。

此时可以考虑将请求变为.content,得到的内容就是正常的了。

2)方法二:手动指定网页编码

# 手动设定响应数据的编码格式
response.encoding = response.apparent_encoding

这个方法稍微复杂一些,但是比较好理解,对于初学者来说,还是比较好接受的。

如果觉得上面的方法很难记住,或者你可以尝试直接指定gbk编码也可以进行处理,如下图所示:

上面介绍的两种方法都是针对网页进行整体编码,效果显著,接下来的第三种方法就是针对中文局部乱码部分使用通用编码方法进行处理。

3)方法三:使用通用的编码方法

img_name.encode('iso-8859-1').decode('gbk')

使用通用的编码方法,对中文出现乱码的地方进行编码设定即可。还是当前的这个例子,针对img_name进行编码设定,指定编码并进行解码,如下图所示。

如此一来,中文乱码的问题就迎刃而解了。

四、总结

我是Python进阶者。本文基于粉丝提问,针对Python网络爬虫过程中的中文乱码问题,给出了3种乱码解决方法,顺利帮助粉丝解决了问题。虽然文中例举了3种方法,但是小编相信肯定还有其他的方法的,也欢迎大家在评论区谏言。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习

在Windows系统中愉快的运行Linux 系统

大家好,我是IT共享者,人称皮皮。

前言

曾经的小编一直都是使用Windows系统,但是当很多人都在我耳边说,用Linux吧,Windows不行;当时不由得怒火朝天,不是因为我在用Windows,而是别人这样说不就等于说用WIndows的男人不行吗?这谁忍得住,要知道,一个男人最忌讳的就是别人说它不行,不管男人女人都不能说,就好比不能说女生胖啊,丑啊啥的,毕竟咱们要学会尊重别人这样才会受到别人的尊重;当然,如果你是一个吊儿郎当的人的话,上面的话当我放屁。哈哈,言归正传,今天小编决定带大家玩一玩Linux系统,不过不是在虚拟机中装Linux系统,下面跟小编一起来看看吧。

一、系统自带

想必用过Windows 10的人都应该知道了,它里面就自带了Linux系统哦,无需你再去安装,是不是很方便,如图:

虽然小编没有Windows 10系统,但是这点小编还是知道的,别不信,信小编得永生。

二、虚拟机

这个我想大家应该都不陌生了吧,Virtual Machine,是非常有名的虚拟机软件,我们可以通过在虚拟机中安装操作系统,模拟一个真实的系统环境从而进行操作,虽然很方便,但是资源占用率太高,不在小编的考虑范畴内,故而果断放弃。

三、Cygwin

Cygwin是一款很实用的模拟Linux环境的软件,通过它我们可以直接在WIndow平台上模拟Linux环境。这里小编给大家准备了32位和64位的软件,下载地址:

https://u062.com/file/7715018-455128314

下面我们开始安装。

双击应用程序,开始安装,如图:

可以看到有三个选项,我们来对这三个选项进行解读,如下所示:

Install from Internet     直接从网络上下载并安装
Download Without Installing 只下载不安装
Install from Local Directory 从本地目录安装

这里小编选择第一项,选择好后就设置安装目录,如图:

依据自己喜好设置。然后我们设置组件包的位置,如图:

然后单击下一步,来到网络连接选项对话框,如下:

这里有三项选项,表示的意思分别是,使用系统代理设置,直接连接,使用HTTP/FTP代理。这里小编选择保持不动,点击下一步。然后会看到很多下载的站点地址,如图:

这里的URL很多,选择国内的镜像地址,下载会更加快速,如下:

然后我们尽可以下载了,下载后弹出一个对话框,如图:

可以下载你喜欢的软件,这里小编下载了Python,点击下一步,再次开始下载,如图:

下载速度可能不是特别理想,需要我们慢慢等待哦,心急吃不了热豆腐嘛。

如此安装完毕。打开Cygwin验证一下,如下:

显示了它的基本信息和当前状态。我们再来看看刚刚选择安装的Python是否已经安装上去了,如图:

可以看到Python的当前版本被成功打印出来了。接下来就可以愉快的使用Linux系统中 的命令了。

四、文末福利

你还在为各个主流编程语言的环境搭建而煞费苦心吗?有了这个神器后通通So easy,之所以说这个是因为小编曾经也有和大家相似的经历,编程五分钟,环境配置两小时,有时候甚至需要更长的时间,于是乎,小编现在决定跟大家分享一款神器,统领各大主流编程语言的Wingw,下载地址:

https://u062.com/file/7715018-455134532

打开压缩包,如下图:

我们点击MinGW-5.1.6.exe,即可开始安装MinGW。

选择第一项,下载并安装,Next,如图:

选择Current,也就是现在开始下载。

选择第一个和最后一个选项即可。然后设置安装位置一路Next即可安装成功。安装成功后我们去它的安装目录去启动它,如图:

好了,现在你只需要专心写代码,剩下的交给这些命令行工具就好了。

五、总结

很多玩Windows的小伙伴相信都和我一样,想要窥探Linux的美,现在一条捷径就摆在你眼前,抓紧行动吧,愿你们前程似锦。

有了它,全球网络摄像头一览无余

大家好,我是IT共享者,人称皮皮。

前言

相信大家对于以前的网络摄像头泄露,各大宾馆开房视频频繁泄露,一定不会陌生了吧,当时,小编也在想,这些黑客是如何办到的了,本期小编就来为大家进行解密,揭开这层神秘的面纱。

一、网站获取

1.ZoomEy

中文名叫钟馗之眼,是专门用来获取全球网络摄像头的网站解析库,界面很美而且简洁,如图:

我们可以通过输入关键词来搜索相关联网设备,如图:

然后选择一个结果并点击,如图:

2.Shodan

这个网站和钟馗之眼一样,也是可以使用关键词来检索到全球各个地方的网络摄像头的地址的,但是打开网络的速率会差点,如图:

而且你还得注册一下账号,不然使用有限制,注册账号后会给你提供一个API Key,你可以使用这个钥匙来进行程序开发,比如Python程序开发。我们来举个简单的例子来看看能获取到多少网络摄像头,如图:

我们选择第一项,点击红色带箭头的图标,如图

可以看到就出现了网络摄像头后台操作界面,只要你把用户名密码和端口都输入正确了,就可以查看此刻这款网络摄像头的实时录像了。

二、软件获取

如果你嫌网站比较麻烦的话,可以通过扫描IP来获取到一些网络摄像头的地址,原理也比较简单,就是通过Ping来返回结果的。可以自己定义IP段来进行扫描,而且一般网络摄像头都是81端口,如图:

然后我们将扫描到的该网段开放81端口的地址通通拷贝,然后放入文本文件中,再打开另一个软件对这些IP和端口进行解析,如图:

我们可以随便打开一个海康威视的连接,进入浏览器,如图:

便会打开海康威视的登陆界面,可以看出这是一个ASP界面,熟悉ASP的大佬对于用户名和密码的获取应该问题不大。

三、总结

小编在这里跟大家郑重声明,技术无罪,但是心术不正就有可能成为害人的工具,切勿盗取他人隐私,这里小编只是粗略讲解,大致过程不便透露。

网站打包成Apk的正确姿势

大家好,我是IT共享者,人称皮皮。

前言

安卓手机想必很多人都在使用,我们手机上安卓的每一款应用的后缀名都是以“.apk”结尾,那么这些Apk是如何做出来的了,就目前小编知道的来讲,有这以下几种:

1.使用三方软件转换生成,比如E4a,火山,蓝鸟,Iapp

2.使用原生的Android代码,如 Android studio

目前职业玩家是第二种,一般玩家大都聚集在第一种,不过今天我们要讲的可不是如何去制作一个应用,而是去偷个懒,将我们的网站变成一个Apk,看看可不可行,下面来试试看。

一、在线网站打包

现在就有很多的网站提供网站打包服务,听起来好像怪怪的,网站打包网站成apk,这是什么鬼,不慌,追随着小编的脚步慢慢的看下去,如图:

慢慢配置,不急不急,所有配置完毕后,就会进行打包,有免费三天试用期,选择试用期可免费打包,如下:

静静等待一会儿就已经打包完成了,如图:

试着安装然后运行,很完美,如图:

比较傻瓜式的操作,按照步骤一步步来就可以。

二、软件打包

1.准备工具

这里小编给大家准备了一个打包网站的应用,下载地址 :
https://u062.com/file/7715018-454568575。小编为了照顾大家的情绪,特意整了一个汉化版的,这可是费了好大劲才搞到的,网上的都是英文版。另外还有Java运行环境也在里面,需要大家自行安装,如图:

这里Java运行环境的安装配置我就不说了,网上大把教程。

2.配置Apk参数

打开我们的软件,如图:

这里小编已经设置好了所有的参数,接下来就是打包的等待过程了,如图:

可能要等待一会儿,不过速度和网站上打包应用时间比差了些,需要一点时间来进行编译和签名。等个差不多五分钟的样子就打包好了,如图:

三、总结

通过对应用的打包发布,我们可以轻松制作手机应用,比如游戏,只不过都是从网页上显示的。

手把手带你进行Golang环境配置

前言

大家好,我是星期八,是一个每天都要在镜子前给自己梳仅剩三根头发的三年码农

本次我们来安排一下如何在win平台上配置Go语言开发环境。

整体来说,Go配置环境还是挺轻松的,和Python差不多,并且会自动添加环境变量。

下载地址

Go官方镜像站点:

https://golang.google.cn/dl/

选择默认的最高版本就好,Go代码向下兼容版本之间的差异并无所谓

手把手带你进行Golang环境配置

安装

1、找到下载好的安装文件。

手把手带你进行Golang环境配置

2、双击进行安装

手把手带你进行Golang环境配置

3、选择同意

手把手带你进行Golang环境配置

4、自定义安装位置。

手把手带你进行Golang环境配置

5、点击install进行安装。

手把手带你进行Golang环境配置

6、安装进行中,等到安装完成。

手把手带你进行Golang环境配置

7、点击finish,安装完成。

手把手带你进行Golang环境配置

查看是否安装成功

上述安装过程没问题后,打开CMD窗口,输入go version命令,如图所示

手把手带你进行Golang环境配置

注:由于已经是1.11+版本,我们以后使用go mod进行管理依赖,不需要配置GOPATH等奇怪的东西。

配置GOPROXY(代理)

可能我们需要借用Go下载一些包什么的。

但是默认官网源,GOPROXY=https://proxy.golang.org,direct,在国内访问不到

输入go env查看Go配置

手把手带你进行Golang环境配置

需要修改成国内镜像站点,这里推荐:

https://goproxy.io

执行以下命令,进行修改

go env -w GOPROXY=https://goproxy.cn,direct

重新打开CMD,执行go env查看Go配置

手把手带你进行Golang环境配置

Go开发编辑器

Go现在的开发编辑器主要有VSCode,Goland两种。本次教程推荐的是Goland,和Pycharm同属一家公司。Goland的安装,破解,在此不做叙述。

为什么没选择VSCode

刚开始写Go时,其实我是用的也是VSCode,但是我在使用时发现,VSCode总是不自动提示,并且设置了自动保存也常常自动失效,经历了几次折腾之后,还是拥抱了专为Go开发的IDE,Goland!!!,真香。

结尾

我是码农星期八,本文到此就先告一段落咯,下篇正在筹备。如果你觉得文章还可以,记得点赞支持我们哈。感谢你的阅读~~

Mysql查询语句之连表查询和增删改查语句补充

前言

Hey,大家好,我是码农星期八!

上次怎么大概说了一下or,!=,in/not in between,like,limit,order by,group by。

但是还没完,咱们接着往下说!

查询

我们的数据是这样的。

Mysql查询语句之连表查询和增删改查语句补充

发现class_id是一个数字,这是因为我们在设计时,将学生表班级表分开设计的。

Mysql查询语句之连表查询和增删改查语句补充

但是如果我们偏偏想要查询这个人是几班的,怎么办?

连表查询

方式一,where连表

语法

SELECT * from1,表2 WHERE1.外键列=表2.被外键列;
SELECT1.1,表1.2,表2.1,... from1,表2 WHERE1.外键列=表2.被外键列;

连表显示所有列

SELECT * from student,class WHERE student.class_id=class.id;

执行结果

Mysql查询语句之连表查询和增删改查语句补充

喏,这样就知道哪个学生是哪个班的了!

连表显示指定列

SELECT student.id,student.`name`,class.title from student,class WHERE student.class_id=class.id;

执行结果

Mysql查询语句之连表查询和增删改查语句补充

方式二,left连表

通过where连表固然简单,但是缺点明显。

因为我们的where后面是要跟判断条件的,使用where进行连表会造成逻辑有些混乱

在一般连表操作中,使用的也是left进行连表。

语法

SELECT * from1 LEFT JOIN2 on1.外键字段=表2.被外键字段;
SELECT1.1,表1.2,表2.1,... from1 LEFT JOIN2 on1.外键字段=表2.被外键字段;

连表显示所有列

SELECT * from student LEFT JOIN class on student.class_id=class.id;

执行结果

Mysql查询语句之连表查询和增删改查语句补充

选择指定列查询

SELECT student.id,student.`name`,class.title from student LEFT JOIN class on student.class_id=class.id;

执行结果

Mysql查询语句之连表查询和增删改查语句补充

其实这和where连表是一样的。

方式三,inner连表

inner和left是差不多的,只不过left是正向连表,inner是反向连表。

就像学生表和课程表。

如果是通过学生表连课程表,属于正向,用left。

如果是通过课程表连学生表,就属于反向,用inner。

如果反向连表硬生生用left,会出现一些空值现象。

inner语法同left,只不过是表的前后顺序不一样。

其他操作

上述所有的操作,都属于查询操作,基本上入门是可以的,下面咱们来看一下剩下的增,删,改操作。

增(insert)

单条插入

语法

INSERT INTO 表(列名1,列名2,...) values(值1,值2,...);

添加一条学生信息

INSERT into student(name,age,gender,class_id) VALUES("吴彦祖",22,"男",1);

执行结果

Mysql查询语句之连表查询和增删改查语句补充

表内容

Mysql查询语句之连表查询和增删改查语句补充

多条插入

语法

INSERT INTO 表(列名1,列名2,...) values(值1,值2,...),(值1,值2,...);

批量添加学生信息

INSERT INTO student (NAME, age, gender, class_id)
VALUES
    ("范冰冰", 18, "女", 2),
    ("成龙", 24, "男", 3);

执行结果

Mysql查询语句之连表查询和增删改查语句补充

表内容

Mysql查询语句之连表查询和增删改查语句补充

改(update)

语法

UPDATE <表> set 列 = 值 where <条件>;

将李四的年龄修改成88岁

UPDATE student set age = 88 where name = "张三"

执行结果

Mysql查询语句之连表查询和增删改查语句补充

删除(delete)

语法

delete from <表名>
delete from <表名> where <条件>

删除张三

DELETE from student where name="张三"

执行结果

Mysql查询语句之连表查询和增删改查语句补充

总结

这章有点像收尾部分,补充了连表查询,后续又补充了Mysql的增删改查。

连表查询要区分一下left和inner的区别,一个是正向连,一个是反向连。

插入数据可以插入单条数据和多条数据,多跟参数即可。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

越努力,越幸运。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。

感谢你的观看。

厉害了,Python也能操作注册表

前言

大家好,我是IT共享者,人称皮皮。

注册表这个东西大家可能都不是很熟悉,因为我们平时用到的少;但是它是Windows的核心,很多软件的启动和日志记录什么的都包含在里面,可以说它是一个大型的数据库也不为过,今天我们就来看看Python是如何操作注册表的吧。

一、注册表初次见面

进入系统注册表的方法多种多样,最常见的就是运行窗口输入命令“regedit”,即可进入注册表:

注册表中的几个菜单分别对应机器的根目录登陆的用户信息和本地机器信息以及用户信息和本地配置信息等。

二、认识操作注册表的模块

在Python中就有这么一个神奇的模块,它可以用来操作注册表。它就是—–“winreg”,一个Python自带的操作注册表的模块。

三、导入

import winreg

1.常量

”winreg“总有很多有用的方法,基本上就是操作注册表中的键值,我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量:

1).HKEY_ 常量

winreg.HKEY_CLASSES_ROOT     #存储应用和shell的信息
winreg.HKEY_CURRENT_USER     #当前用户自定义的信息
winreg.HKEY_LOCAL_MACHINE    #计算机系统所有的信息
winreg.HKEY_USERS            #所有用户信息
winreg.HKEY_PERFORMANCE_DATA #性能数据
winreg.HKEY_CURRENT_CONFIG   #本地计算机系统的硬件配置文件
winreg.HKEY_DYN_DATA         #windows98后的版本无法使用

2).访问权限

winreg.KEY_ALL_ACCESS           #所有权限
winreg.KEY_WRITE                #可写
winreg.KEY_READ                 #可读
winreg.KEY_EXECUTE              #可执行相当于KEY_READ
winreg.KEY_QUERY_VALUE          #查询注册表键值
winreg.KEY_SET_VALUE            #创建、删除或设置一组注册表值
winreg.KEY_CREATE_SUB_KEY       #创建一个注册表子项的注册表键
winreg.KEY_ENUMERATE_SUB_KEYS   #枚举注册表子项所需的注册表键
winreg.KEY_NOTIFY               #修改注册表键时的提示
winreg.KEY_CREATE_LINK          #创建一个链接,预留给系统用

3).64位的具体应用

winreg.KEY_WOW64_64KEY  #在64位Windows应用程序应该运行在64位注册表视图
winreg.KEY_WOW64_32KEY  #在64位Windows应用程序应该运行在32位注册表视图

4).值类型

winreg.REG_BINARY                  #任何形式的二进制数据
winreg.REG_DWORD                   #32位的数
winreg.REG_DWORD_LITTLE_ENDIAN     #32位的数字在低位优先的格式,相当于REG_DWORD
winreg.REG_DWORD_BIG_ENDIAN        #32位的数字在高位优先的格式
winreg.REG_EXPAND_SZ               #以null结尾的字符串包含环境变量的引用(% %)
winreg.REG_LINK                    #Unicode符号链接
winreg.REG_MULTI_SZ                #一个以null结尾的字符串序列,由两个空字符结束
winreg.REG_NONE                    #没有定义的值类型
winreg.REG_QWORD                   #64位的数
winreg.REG_QWORD_LITTLE_ENDIAN         #在低位优先一个64位的数字格式,相当于REG_QWORD
winreg.REG_RESOURCE_LIST               #设备驱动器资源列表
winreg.REG_FULL_RESOURCE_DESCRIPTOR    #硬件设置
winreg.REG_RESOURCE_REQUIREMENTS_LIST  #硬件资源列表
winreg.REG_SZ                          #一个以null结尾的字符串

四、注册表相关操作

1.连接远程计算机注册表

reg=winreg.ConnectRegistry('\\计算机名',winreg.HKEY_LOCAL_MACHINE)#返回值是所开打键的句柄
#第一个参数是指远程计算机名,第二个参数是指注册表中的键,如HKEY_LOCAL_MACHINE,它是winreg中的常量。

不过我们在这里要注意的是,如果远程注册表没有系统管理员权限,是无法正常访问注册表的。所以我们先要判断下它的访问权限。这里就要用到我们之前讲的”ctypes”模块中的判断用户是否是管理员用户的方法了。

import ctypes
import sys
def admin():
    aa=ctypes.windll.shell32.IsUserAnAdmin()
    return aa


if admin()==1: #有管理员权限可打开远程注册表
    winreg.ConnectRegistry('\\计算机名',winreg.HKEY_LOCAL_MACHINE)
else:
    if sys.version_info[0]==3: #python版本是3以上的版本
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
    else: #python2 版本
        ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1)

2.关闭连接注册表

连接之后我们不想用了,就要随手把它给关闭了,也很简单,只要拿到打开注册表的句柄,就可以关闭了。

winreg.CloseKey(reg)

可以看到句柄的值不一样。

其实还有一种方法,就是利用注册处理对象的方法来关闭。

reg.Close()

注册对象还支持上下文和分离处理对象周期:

reg.detach() #返回一个整数,记录当前对象的生命周期,如果关闭注册句柄对象,那么则为0

3.打开注册表键

#打开指定的键,返回一个处理对象
winreg.OpenKey(key, sub_key, reserved=0, access=winreg.KEY_READ)
winreg.OpenKeyEx(key, sub_key, reserved=0, access=winreg.KEY_READ)
#key:HKEY_ 常量
#sub_key:指定键的子键
#reserved:一个保留的证书,必须是零。默认值为零
#access:访问权限

4.创建新的注册表键

winreg.CreateKey(key,sub_key)
winreg.CreateKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WRITE)
#key:HKEY_ 常量
#sub_key:指定键的子键
#reserved:一个保留的证书,必须是零。默认值为零
#access:访问权限

5.删除注册表中指定的键

winreg.DeleteKey( key,sub_key) #不能删除带有子项的键
winreg.DeleteKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WOW64_64KEY)#不能删除带有子项的键
winreg.DeleteValue(key, value)#从某个注册键中删除一个命名值项
#用法与上面相同,只是结果是删除罢了

可以看到”cnm“已经被删除了。如果键不存在,删除会报错。

6.枚举注册表键

winreg.EnumKey(key,index) #枚举打开的注册表键的子键,并返回一个字符串
winreg.EnumValue(key,index)#枚举打开的注册表键值,并返回一个元组
#index:一个整数,用于标识所获取键的索引

7.刷新注册表键

winreg.FlushKey(key)  #同步某个键的所有属性写入注册表

8.读取注册表

winreg.LoadKey(key,sub_key,file_name)
#file_name:读取注册表的数据的文件名

9.查找注册表键

winreg.QueryInfoKey(key) #返回一个3元素元组的键的信息
winreg.QueryValue(key,sub_key) #用一个字符串来检索一个键的值
winreg.QueryValueEx(key,value_name) #检索与开放权限的注册表键相关联的指定值的数据类型和名称

10.保存注册表键

winreg.SaveKey(key, file_name) #保存指定的键和所有指定文件的注册表子项

11.启用禁用注册表

winreg.DisableReflectionKey(key) #禁用
winreg.EnableReflectionKey(key)  #启用

12.反射状态是否禁用

winreg.QueryReflectionKey(key) #结果为True 则表示禁用

13.在指定键上关联值

winreg.SetValue(key, sub_key, type, value) #添加键和值
winreg.SetValueEx(key,value_name,reserved,type,value)#将数据存储在一个开放的注册表键值字段
#value_name:该字符串名称的注册表子键
#type:值类型
#value:子键的键值

可以看出它们的区别,而且前者值类型只能指定为“winreg.REG_SZ”,而后者什么类型都可以。

14.寻找应用程序的位置并打开

前面我们介绍了”winreg”几乎所有的方法,现在我们就来具体做一个应用练练手,就拿我们的360安全卫士为例,我们尝试着通过注册表先找到它的位置然后打开它。那么接下来小编开始表演了:

1).定位360安全卫士的注册表项:

1)).打开系统注册表编辑器,然后进行搜索关键字:

2)).定位到注册表路径

2).打开注册表键

通过我们找到的子键然后对其进行查找操作,得到处理对象的句柄“reg”

reg=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\360安全卫士")

3).找到应用的绝对路径并打印

通过数值名称找到数值数据,

path=winreg.QueryValueEx(reg,'DisplayIcon')

这样就找到了这个应用的绝对路径了,返回值是一个元祖,我们使用索引访问:

path[0]

可以看到我们已经成功打印出了我们要找的应用程序的绝对路径了,接下来就可以愉快的打开它了。打开的方法多种多样,什么“os”,“subprocess”,”ctypes”,”pywin32″,一大堆的方法,不过小编还是觉得“os”最方便。

os.popen(path[0])

最后别忘了关闭对象处理句柄哦。

#两种方法都可以关闭
winreg.CloseKey(reg)
reg.Close()

四、总结

利用”winreg“可以完成很多骚操作,你也可以通过注册表设置系统开机启动项以及其它操作,如果你想往黑客方面发展的话。

Windows环境下轻松搭建NodeJs服务器

大家好,我是皮皮,今天给大家分享一些好玩的~

前言

Nodejs是GoogleV8引擎的一个JavaScript脚本语言,实际上也就是相当于服务器一样,可以解析网页内容并产生效果。它的出现令JavaScript如虎添翼,而且Node比JavaScript执行更为快速,并且支持分布式,因为它使用了事件驱动型的非阻塞式的模型。说太多反而没意思,不如我们自己搭建一个。

一、下载Nodejs

由于小编是Win7的系统,新版Nodejs不支持,不知道为什么?倒是对Win8很友好。于是小编在清华镜像下载了下来,分享给大家。这里有两个版本,一个是安装包版本(后缀是.msi)无需配置环境变量;另一个是压缩包,直接解压然后配置环境变量即可。这里小编建议大家下载安装包,考虑到有些人不懂的怎么设置环境变量,还是安装包好点,小编偷个懒也下安装包。

二、安装Nodejs

首先我们需要同意它的用户协议,然后选择安装路径,没有硬性规定非得放在系统盘,那么就请放在其它盘,如下:

Windows环境下轻松搭建NodeJs服务器

然后点击下一步,会看到环境设置和安装依赖项,不用管,Next继续,如下:

Windows环境下轻松搭建NodeJs服务器

然后我们会看到有一个选项,如图:

Windows环境下轻松搭建NodeJs服务器

这个是让我们是否选择这个工具,选择了它就会下载,建议选上,然后等待片刻,安装立马就好了,如图:

Windows环境下轻松搭建NodeJs服务器

这个时候会出现一个CMD窗口,提示我们要下载工具了,并且需要关掉所有的窗口,如图:

Windows环境下轻松搭建NodeJs服务器

按回车后,完成闪退,进入CMD,输入命令获取Node版本号,若返回则说明安装成功,如下:

Windows环境下轻松搭建NodeJs服务器

三、新建项目

首先创建一个文件夹,名字不要使用中文和大写字母,然后我们在该目录下打开命令提示符,并输入命令“npm init”,如下:

Windows环境下轻松搭建NodeJs服务器

这里我们一步步按回车,最后输入Yes,即可创建一个Node的项目了。上面给出的都是项目的配置。打开文件夹去看看,如图:

Windows环境下轻松搭建NodeJs服务器

会创建一个Json格式的文件。然后我们需要给这个项目建立一个静态的资源库,一般放置图片,HTML什么的,取名为Static好了,然后放一个HTML文件进去,取名“index.html”,至于内容随便写;然后我们需要在Json文件目录建立一个Json文件,用作启动服务器使用,先随便写一个,如图:

Windows环境下轻松搭建NodeJs服务器

然后我们访问它,这个时候这个Js 文件就是服务端的程序,访问就会出结果,如图:

Windows环境下轻松搭建NodeJs服务器

四、建立一个可以在浏览器中访问的服务器

上面我们所建立的只能在Node中访问,浏览器中不行,下面建立个浏览器中能访问的,这样才叫服务器吗?我们先创建一个服务器的Js文件,内容如下:

var http = require('http');
var server = http.createServer(function (req,res) 
{
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end('Hello World\n');
});
server.listen(8080,'127.0.0.1');


console.log('Server running on http://127.0.0.1:8080/');

然后我们在CMD中启动服务,如下所示:

Windows环境下轻松搭建NodeJs服务器

Windows环境下轻松搭建NodeJs服务器

成功。

五、总结

看完Nodejs搭建服务器是不是觉得很简单了,不着急,更精彩的还在后面等着你,这才只是个开端而已。