连接rdp

连接远程桌面

设置你想要连接以使其允许远程连接的电脑:

1.确保你拥有 Windows 11 专业版。 若要检查这一点,请选择“开始”,然后打开“设置”。 然后,在“系统”下,选择“关于”,并在“Windows 规范”下,查找“版本”。 有关如何获取 Windows 11 专业版的详细信息,请转到“将 Windows 家庭版升级为 Windows 专业版”。

  • 准备就绪后,选择“开始”,然后打开“设置”。 然后,在“系统”下,选择“远程桌面”,将“远程桌面”设置为“打开”,然后选择“确认”。

  • 记下“电脑名称”下的这台电脑的名称。 稍后将需要使用此名称。

2.使用远程桌面连接到你设置的电脑:

  • 在本地 Windows 电脑上: 在任务栏的搜索框中,键入“远程桌面连接”,然后选择“远程桌面连接”。 在“远程桌面连接”中,键入你想要连接的电脑的名称(从步骤 1),然后选择“连接”。

  • 在 Windows、Android 或 iOS 设备上:打开远程桌面应用(可从 Microsoft Store、Google Play 和 Mac App Store 免费获得),然后添加要连接的 PC 的名称(从步骤 1 开始)。 选择你添加的远程电脑名称,然后等待连接完成。

Hello World程序

1
2
3
4
5
6
7
8
9
10
11
12
//std 标准,i input 输入,o output输出,标准输入输出库
#include <stdio.h>

//main函数,主函数,是程序的入口,有且只能有一个
int main() {

// printf是一个库函数,用来打印数据的
printf("Hello World\n");

//返回值
return 0;
}
阅读全文 »

介绍

  MD5是一种哈希算法,用来保证信息的完整性。这种算法不可逆。MD5算法算出来的值的长度是16字节,即128位。

阅读全文 »

编译器相关知识介绍

编译器

  将高级语言代码转换成CPU能识别的二进制指令,也就是将代码加工成.exe程序,这个工具叫做编译器(Complier)。

  

链接器

  编译器一次只能编译一个源文件,如果程序包含了多个源文件,就需要编译多次。编译器每次编译的结果是产生一个中间文件,而不是最终的可执行文件。将当前程序的所有中间文件以及系统库组合在一起,才能形成最终的可执行文件,这个组合过程叫做链接。完成链接功能的软件叫做链接器。链接后生成可.exe执行文件。

计算机编码

计算机只能存储0和1这些二进制数字,而其文本里的字母,数字,汉字等一系列符号都需要经过某一种方式转换成二进制数字进行储存,需要用的时候再读出来。

二进制、十进制、十六进制

  二进制是0和1,十进制是0-9,十六进制0-9和a-f。

ASCII

  1963年,ANSI推出了ASCII(美国信息交换标准代码)。
  标准ASCII码使用7位二进制数(0-127)来表示所有的大小写字母,数字,标点以及美式英语中使用的特殊的控制字符。后来又有了拓展ASCII,用8位二进制数来表示(0-255)。
  再后来,各个国家在ASCII的基础上推出了本国语言的编码表,既兼容 ASCII 又互相之间不兼容的字符编码,后来又统称为 ANSI 编码

Unicode

  Unicode又叫万国码,包括字符集,编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码。
  在 Unicode 编码方案里常见的有四种编码实现方案:UTF-7、 UTF-8、UTF-16、UTF-32。这里面UTF-8最为常见。
  字符集只是字符及字符对应码点的集合,不代表字符一定会以对应码点被存储在计算机中。字符编码才是真正定义从字符到计算机储存内容的映射。

UTF-32

  UTF-32直接就把字符对应的码点以其二进制储存在计算机里。UTF-32规定每个字符都以32比特即4字节的长度来储存,位数不够在前面补0。ASCII里的每个字符所占的空间大小是一字节,GBK里一个汉字占用两个字节,如果把他们用UTF-32来实现,空间效率很差,因此而生出了UTF-8。

UTF-8

  UTF-8是Unicode的实现方式之一。UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
  对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
  对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

GB国标编码系列

  我们国家的有关部门按照ISO规范设计了GB2312双字节编码。但是它能收录的字符有限。后来有了GBK、GB18030。
  在GB系列编码方案下,一段文本中,如果一个字节是0-127,那么这个字节的含义与ASCII编码相同,否则,这个字节就和下一个字节共同组成汉字或其他字符。GB系列是兼容ASCII的。

GB2312

  GB2312 是使用两个字节来表示汉字的编码标准,共收入汉字 6763 个和非汉字图形字符 682个。
  GB2312 属于变长编码,当是英文字符的时候占一个字节,中文字符的时候占两个字节,可以认为 GB2312 是对 ASCII 的中文扩展。

GBK

  GBK 即国标扩展的意思。
  GBK码的2个字节,第一个字节的范围是0x810xfe,第二个字节的范围是0x400xfe,GBK协议有规定,第二个字节的0x7F位置是空着的,没有字节。所以一共有126*190=23940个字符。

GB18030编码

  GB18030是中华人民共和国现时最新的内码字集。与 GB2312-1980 完全兼容,与 GBK 基本兼容,支持 GB13000 及 Unicode 的全部统一汉字,共收录汉字 70244 个。与 UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成。
  GB18030 其实是对齐 Unicode 标准的,里面包括了所有 Unicode 字符集,也算是 Unicode 的一种实现(UTF)。

使用Java程序进行编码解码

在String中提供了一些方法
编码

1
2
byte[] getBytes()  //使用平台默认字符集将该String编码为一些列字节,将结果存储到新的字节数组中
byte[] getBytes(String charsetName) //使用指定字符集将该String编码为一系列字节,将结果存储到新字节数组中

解码

1
2
String(byte[] bytes)  //通过平台的默认字符集编码指定的字节数组来构造新的String
String(byte[] bytes , String charsetName) //通过指定的字符集解码指定的字节数组来构造新的String
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Test {
public static void main(String[] args) throws UnsupportedEncodingException {
//1.编码
String data = "a我b" ;
byte[] bytes1 = data.getBytes(); //默认按照(UTF-8)编码
System.out.println(Arrays.toString(bytes1));

byte[] bytes2 = data.getBytes("GBK");
System.out.println(Arrays.toString(bytes2));

String s1 = new String(bytes1);
String s2 = new String(bytes2);
String s3 = new String(bytes2,"GBK");

System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}

>>>
[97, -26, -120, -111, 98]
[97, -50, -46, 98]
a我b
a��b
a我b

XPath的使用

  全称是XML Path Language。最初用来搜寻XML文档,但也适用于HTML文档的搜索。所以在做爬虫时,完全可以使用XPath来实现相应信息抽取。

XPath概览

  XPath提供了非常简洁的路径选择表达式。还有内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。

XPath常用规则

表达式 描述
nodename 选取此节点的所有节点
/ 从当前节点选取直接子节点
// 从当前节点选取子孙节点
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性

例://title[@lang='eng'] 代表选择所有名称为title,同时属性lang的值为eng的节点。
后面根据lxml库,利用XPath对HTML进行解析。

安装lxml

可以使用pip3 来安装:
pip3 install lxml

实例引入

感受XPath对网页进行解析过程
相关代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from lxml import etree
text = '''
<div>
<ul>
<li class=""item-0><a href="link1.html">first item</a></li>
<li class=""item-1><a href="link2.html">second item</a></li>
<li class=""item-inactive><a href="link3.html">third item</a></li>
<li class=""item-1><a href="link4.html">four item</a></li>
<li class=""item-0><a href="link4.html">five item</a></li>
</ul>
</div>
'''
html = etree.HTML(text)
result = etree.tostring(html)
print(result.decode('utf-8'))

>>>
<html><body><div>
<ul>
<li class="" item-0=""><a href="link1.html">first item</a></li>
<li class="" item-1=""><a href="link2.html">second item</a></li>
<li class="" item-inactive=""><a href="link3.html">third item</a></li>
<li class="" item-1=""><a href="link4.html">four item</a></li>
<li class="" item-0=""><a href="link4.html">five item</a></li>
</ul>
</div>
</body></html>

先导入lxml库的etree模块,然后声明HTML文本,用HTML类进行初始化,构造一个XPath解析对象。etree模块可以自动修正HTML文本。

也可以直接读取文本文件进行解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from lxml import etree

html = etree.parse('./test.html',etree.HTMLParser())
print(etree.tostring(html).decode('utf-8'))

>>>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><div>&#13;
<ul>&#13;
<li class="" item-0=""><a href="link1.html">first item</a></li>&#13;
<li class="" item-1=""><a href="link2.html">second item</a></li>&#13;
<li class="" item-inactive=""><a href="link3.html">third item</a></li>&#13;
<li class="" item-1=""><a href="link4.html">four item</a></li>&#13;
<li class="" item-0=""><a href="link4.html">five item</a>&#13;
</li></ul>&#13;
</div></body></html>

抓包介绍

  在安卓App逆向分析中,抓包通常是指通过一些手段获取App与服务器之间传输的明文网络数据信息,这些网络数据信息往往是逆向分析的切入点,通过抓包得到的信息可以快速定位关键接口函数的位置。
  抓包两种情况

  • Hook抓包
    指通过对发包函数的Hook来达到抓包的作用。
  • 中间人抓包
    指将原来一段完整的客户端-服务器的通信方式割裂成两段客户端-服务器的通信。
    中间人抓包在OSI七层网络模型结构中通常又被分为两种情形
    • 应用层:Http(s)协议抓包。
    • 会话层:Socket通信抓包。

  中间人抓包方式通常会通过抓包工具完成数据的截取,常用工具有Wireshark、BurpSuite、Charles、Fiddler等。
  抓应用层的Http(s)协议数据,推荐的专业工具是BurpSuite,如果只是简单抓包,也可以用Charles。如果是会话层,可选择Charles、tcpdump和WireShark组合的方式。

HTTP(s)协议抓包配置

  以Charles和BurpSuite作为抓包工具对App进行抓包环境配置,并通过浏览器访问HTTP网站进行验证。

HTTP抓包配置

  为了达到抓包目的,首先要将手机和测试手机连接在同一个局域网中且确保手机和计算机能互相访问。

Xposed是比Frida框架更早的Hook框架。

Xposed框架简介

  Xposed框架是一套开源的、在Android root模式下运行的框架,它可以在不修改原码的情况下通过Hook方式去影响程序的运行。
  可惜的是,Xposed很久没更新了,且每次编写Xpsed模块代码都要重启手机以使新加入的功能生效,这样很低效。
  但是出现了很多基于Xposed框架的衍生品,如EdXposed。

鼠标从虚拟机退出到物理机

Ctrl+Alt

打开终端的快捷键

Ctrl+Alt+T

从终端进入root

sudo -i

重启

reboot
shutdown -r now

查看网络配置

打开终端,可以使用快捷键Ctrl+Alt+T
输入ifconfig

设置root密码

在终端输入sudo -i
然后输入登录用户密码,回车,输入passwd root,用来修改root用户密码
然后输入新的root密码,接着回车,注意的是输入的密码不会显示。然后再重新输入新的root密码,然后回车就可以将root用户的密码给修改了。

更改shell

kali Linux在2020.3版本后默认的Shell不再是Bash而是Zsh,虽然Zsh的的自动提示等扩展功能很强大,但是后续Android系统的编译只支持Bash终端,因此需要更改Shell。
chsh -s /bin/bash

重启系统前

重启系统后

apt更新和升级

更新软件包列表
sudo apt-get update
对软件包进行升级
sudo apt-get upgrade
这个过程很慢需要等很长时间。

安装常见apt install软件

apt install jnettop