CTF之MISC练习一渗透测试中心

FileFormat:文件格式,这个主要是查看图片的具体信息

DataExtract:数据抽取,图片中隐藏数据的抽取

FrameBrowser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看

ImageCombiner:拼图,图片拼接

3.将静态图片截图保存下,使用phoshtop工具修复二维码图片,然后进行扫描

writeup:

1.用jd-gui打开,直接搜索:flag

得到ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

4.base64解密

flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

八、pdf隐写之摩莫斯密码writeup:1.通过谷歌浏览器打开pdf文件,然后复制文字内容到text文字中

这里需要一些关于正常文件编码的知识:

jpg图像开始标志:FFD8结束标志:FFD9

gif图像开始标志:474946383961结束标志:0101003B

4.修改后缀名为.gif,利用Stegsolve中的framebrower分解成两个图片然后用底下的左右箭头选择图层分离出二维码得到两张不全的二维码

5.由题可知为双层图,用ps打开分离图层后保存

(具体步骤:点击图层-复制图层-确定,再点击文件-储存-保存)

ps全二维码,扫描得到flag:flag{yanji4n_bu_we1shi}

1.压缩源文件数据区:

2.压缩源文件目录区:

压缩源文件目录结束标志:

504B0506:目录结束标记0000:当前磁盘编号0000:目录区开始磁盘编号0100:本磁盘上纪录总数0100:目录区中纪录总数5B000000:目录区尺寸大小100E0000:目录区对第一张磁盘的偏移量0000:ZIP文件注释长度

然后就是识别真假加密1.无加密压缩源文件数据区的全局加密应当为0000且压缩源文件目录区的全局方式位标记应当为00002.假加密压缩源文件数据区的全局加密应当为0000且压缩源文件目录区的全局方式位标记应当为09003.真加密压缩源文件数据区的全局加密应当为0900且压缩源文件目录区的全局方式位标记应当为0900writeup:

1.这题全局为0000但是在结尾发现是0900,所以为假加密,把0900改成0000就能解压打开文件了。

1.使用wireshark分析,在wieshark中的编辑---查找分组--分组详情,字符串,中搜索字符串,flag.txt,进行查找分析

5.FFD8FF是jpg文件的文件头,附上各类图的文件头:

6.把以FFD8开头、FFD9结尾的这部分复制,并在winhex中新建文件并粘贴,注意粘贴格式选择为ASCIIHex(建议先全选复制到记事本然后删去头尾比较方便),放到winhex里面新建一个文件,以ASCIIHex的形式复制进去,保存为jpg文件

$gccflag.c-oflag

$./flag

inputstring:

warning:thisprogramusesgets(),whichisunsafe.

ba1f2511fc30423bdb

result:

bdb32403cf1152f1ab

题目:

rc4的key为,welcometoicqedu

加密密码为:UUyFTj8PCzF6geFn6xgBOYSvVTrbpNU4OF9db9wMcPD1yDbaJw==,求明文

writetup:

1.通过python脚本解密

importrandom,base64fromhashlibimportsha1defcrypt(data,key):x=0box=range(256)foriinrange(256):x=(x+box[i]+ord(key[i%len(key)]))%256box[i],box[x]=box[x],box[i]x=y=0out=[]forcharindata:x=(x+1)%256y=(y+box[x])%256box[x],box[y]=box[y],box[x]out.append(chr(ord(char)^box[(box[x]+box[y])%256]))return''.join(out)deftdecode(data,key,decode=base64.b64decode,salt_length=16):ifdecode:data=decode(data)salt=data[:salt_length]returncrypt(data[salt_length:],sha1(key+salt).digest())if__name__=='__main__':data='UUyFTj8PCzF6geFn6xgBOYSvVTrbpNU4OF9db9wMcPD1yDbaJw=='key='welcometoicqedu'decoded_data=tdecode(data=data,key=key)printdecoded_data

最终得到flag:flag{rc4_l_keepgoing}

1.使用winhex打开,查看前后没有什么信息,使用ctrl+f查找关键字flag,找到答案

听说这是某个数据库的泄漏的重要数据,25d55ad283aa400af464c76d713c07ad,试着找出原始key吧。flag{key}

1.数据库泄露的重要数据?那猜想应该是md5加密,且了解字符的话就会知道是MD5,所以在线MD5解密

1.根据题目内容,猜测是rot13解密,那么通过在线工具

2.离线工具crackt00ls工具进行解密

..-..-...---..--....-----.-..-.....-.-.-..-....---...-..-...----.-....-....--....-...---....-----....-----.....---....-.----.-..-.---..-....--...---..---...----..-.-------...

flage71ca5cd-7db9-4ba3-9383-1af867881f072.最终得到flag:flag{e71ca5cd-7db9-4ba3-9383-1af867881f07}二十四、栅栏密码题目:

山岚,f5-lf5aa9gc9{-8648cbfb4f979c-c2a851d6e5-c}

1.根据题目内容山岚和栅栏谐音,猜测是栅栏加密,通过crackt00ls工具进行解密,其中字符就包含了flag,那么确认猜测没错。

基础知识:

它也是定义了用可打印字符表示二进制文字一种方法,不是一种新的编码集合。XXEncode将输入文本以每三个字节为单位进行编码,

如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,

以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。它64可打印字符固定字符范围及顺序!

包括大小写字母、数字以及+-字符。它较UUEncode编码优点在于它64字符是常见字符,没有任何特殊字符!

Xxencode编码原理:

XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。它所选择的可打印字符是:+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,一共64个字符。跟base64打印字符相比,就是uuencode多一个“-”字符,少一个”/”字符。但是,它里面字符顺序与Base64完全不一样。与UUencode比较,这里面所选择字符,都是常见字符,没有特殊字符。这也决定它当年流行使用原因!

每60个编码输出(相当于45个输入字节)将输出为独立的一行,每行的开头会加上长度字符,除了最后一行之外,长度字符都应该是“h”这个字符(45,刚好是64字符中,第45位'h'字符),最后一行的长度字符为剩下的字节数目在64字符中位置所代表字符。

问题:uuencode编码转换为xxencode编码怎么样操作?从编码原理来看,几乎一样。就是所用的64个字符不一样。一次,简单对uuencode转换后字符,逐位(处理'`'字符)减去32,然后得到一个值。这个值在xxencode64字符中所对应位置字符替换即可。

XXencode编码转换过程:

字符串:'Cat‘编码后是:Eq3O

1.根据题目名称xx,可将xxencode编码转ascii

我喜欢贝丝,但是贝丝的表妹喜欢我

还给了我一封情诗

MZWGCZ33MVZGQZLJL5STQOJTGRPWK4SVJ56Q====

base家族有base64,base32,base16

1.Base16编码是包含了数字(0~9)和大写字母(A~F),Base32编码与Base64编码最大区别是前者没有小写字母.Base32编码可以用于文件系统的名称(不区分大小情况).而Base64编码后数据量相比原先不是增加很多,可以用于网络传输.

2.根据特征是base32

3.那么可以通过在线工具进行解密

方方格格,不断敲击

“wdvtdzqsxdrwerdzxcesxcfruygbn”

flag格式为:flag{小写的字符串}

1.根据提示我们可以猜到这个是采用了键盘拼写方式得出的键盘布局图形样式:(这块最好用画按照键盘画好)

wdvtdzx

qsxdrv

werdzxcz

esxcfro

uygbnc

2.最终组合起来为:xvzoc

flag为:flag{xvzoc}

低频ID卡数据格式转换小常识

将下列16进制串中倒数第5,6位转换为3位十进制数,

将最后4位转换为5位十进制卡号,中间用“,”分开。

0000944664

1.根据提示,先将十六进制94转换为十进制148,然后再将十六进制4664转换成十进制18020

它们之间以逗号分隔,最终组合得到,前面000需要去掉。

2.最终获得flag:

flag{148,18020}

让我们回到最开始的地方

011001100110110001100001011001110111101101100011011001010011001101100101001101010011000000110010011000110010110100110100001110000110001100111001001011010011010001100100001101010011000000101101001110010011100100111001001100000010110100110101011000100011100000110001011001000110001000110110011001100110001101100010011001100011000001111101

1.通过在线工具进行解密

有一天,表姐的好朋友贝丝远房的表亲,一个16岁的少年

给表姐递了一封情书,表姐看不懂,你能帮忙翻译下吗?

666C61677B65633862326565302D336165392D346332312D613031322D3038616135666137626536377D

1.根据题目含义16岁少年,并且是含有贝丝,猜测为base16解密

2.通过在线工具进行解密

题目内容:

flag{ichunqiu_=E6=8A=80=E6=9C=AF=E6=9C=89=E6=B8=A9=E5=BA=A6}

Quoted-printable可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码!

任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值

麻辣烫的标配。flag{abbab_babbb_baaaa_aaabb}

1.根据题目内容包括abab循环,从特征上看是培根密码,这里需要将下划线去掉,最终得到:abbabbabbbbaaaaaaabb

2.通过在线解密工具,即可获得flag

哒哒哒哒,你知道什么是键盘坐标密码吗?

11213118273334

flag格式:flag{*****

我们注意到大键盘区所有的字母上面都有其对应的数字,这个位置几乎在所有的键盘都是相同的。所以我们可以利用这一点应用单表替换的方法进行加密[注2]:

1234567890

QWERTYUIOP

ASDFGHJKL

ZXCVBNM

我们根据上表可以得出,Q是1下面的第一个,A是1下面的第二个……以此类推,每一个字母都会有其对应的数字:A12B53C33第一个数字代表横向(X坐标)的位置,第二个数字代表纵向(Y坐标)的位置

根据上面对应表,可获得flag:

flag{QAZIJCV}

贝克街旁的圆形广场

·-··-··-··-··-··-··

1.题目给的这种字符一般解不出·-··-··-··-··-··-·,一般模式电码是点在下面,横在上面.改成:

.-..-..-..-..-..-..

2.通过crackt00ls工具解密

例:

为Ook!编码后如下图:

压缩包中包含多个文件,且每个文件有一个字母

1.通过notepad发现每个文件中含有一个字母

2.通过cmd命令和管道符合即可批量将文件中的内容输出到一个文件中

进入解压后的目录,然后输入cmd命令:

typedabiaojie*>>flag.txt

讲真的,才华已经枯竭

大家好好答题

也许这道题一点都不坑

也许。。。。。

wirteup:

1,先用zip伪加密破解,但是打开错误,也通过winhex查看zip文件政策

2.然后剩下zip破解了,这里有个提示是5句话,考虑5句话,可能就是密码字符长度为5位数,通过zippasswordtool对其破解,并且也说很简单不吭,说明是5位数字

需要帮助我将这个波斯传来的“波利比奥斯棋盘”上的秘密解决掉

华夜拿到该棋盘,只见棋盘盒上分布着一串十分奇异的数字:

“3534315412244543_434145114215_132435231542”

flag格式:flag{****}全为小写字符串

1.题目重要的部分是“波利比奥斯棋盘”和一串数字“3534315412244543_434145114215_132435231542”

2.百度波利比奥斯棋盘,简单的来说就是把字母排列好,用坐标的形式表现出来。字母是密文,明文便是字母的坐标。它是一个6行6列的矩阵,第一行为数字1~5,第一列也为数字1~5,表里是26个字母,除了I与J以外,每个字母都各占据一个格子,也就是每个字母都有它们的数字表示,类似于坐标。

3.把数字每两位分成一组,然后按照行列的方式找出字母,比如35就是第3行的第5列为P,以此类推

3534315412244543_434145114215_132435231542

POLYBI/JUSSQUARECI/JPHER

4.题目提示小写字母,所以构造flag{polybius_square_cipher},注:这里的24有两个对应的字母,尝试i是正确的,而j是错误的,且和原来的格式要保持一致。

他将这首残诗刻在了通往第四层虚数空间的通关法诀上

只有填满句诗词,才能走出这层虚数空间

5LiD5pyI5Zyo6YeOICA=

5YWr5pyI5Zyo5a6HIA==

5Lmd5pyI5Zyo5oi3

1.通过base64在线解密工具获得三个base64解密(本地解密工具会出现乱码,可能式编码问题)

2.解密出:

七月在野

八月在宇

九月在户

3.通过百度搜索,发现它的下一句是:十月蟋蟀入我床下

4.最终flag:

flag{十月蟋蟀入我床下}

01001001011000110110010101000011010101000100011001111011011000010110110000110001010111110110110101111001010111110110001001100001011100110110010101110011010111110110000101110010011001010101111101111001011011110111010101110010011100110101111101100001011011100110010001011111011000010110110001101100010111110111100100110000011101010111001001011111011000100110000101110011011001010111001101011111011000010111001001100101010111110110110101101001011011100110010101111101writeup:1.下载flag.txt是二进制的文本

3.二进制转十六进制,在对照ASCII码转为相应的字符

2.以用SetgSolve提取出图,点击Analyse->DataExtract,在弹出的窗口中把Rad,Green,Blue都勾上,然后点击Preview

3.会发现头部是PNG,表示这是一张PNG图片,然后点击SaveBin,把图片提取出来打开,就出现了flag

2.找一个正常的pcapng文件对比文件头,对kill.pacpng的文件头进行对应修改,修改后仍然无法打开

3.使用strings.exe对kill.pcapng中的可打印字符进行提取,保存到strings.txt文件中,命令

stringskill.pcapng>kill.txt

4.打开strings.txt,搜索flag,即可获得flag:

5.实际上直接notepad++打开搜索kill或者flag,更快找到答案,但因为文件有2M多,肯能会有点卡。

3.进行在线修复,修复完毕后用wireshark打开,查找分组字节流-字符串-flag:

4.或者通过notepad,搜索flag关键字,发现提示whereistheflag

2.利用linux下面的命令xxd,可以将类似文本转换为文件

catthor.txt|xxd-r>thorfile//查看thor.txt十六进输出,并通过xxd-r转换成二进制文件

3.使用winhex打开文件thorfile,发现文件头为LZIP

5.在linux下使用lzip命令对文件进行解压

lzip-dthorfile//对lzip文件进行解压,得到thorfile.out文件

6.使用winhex打开文件thorfile.out,文件头为有JFIF,文件头格式为:文件头:FFD8FFE0(JPEG(jpg))

7.将文件名后缀修改为jpeg,打开文件看到图片,看到答案

8.最终得到flag

1.附件下载,然后使用winhex查看文件信息,发现文件头是mid格式

0x00000000

0xff71fefe

0x83480082

0xbb4140ba

0xbb6848ba

0xbb4a80ba

0x83213082

0xff5556fe

0x00582e00

0x576fb9be

0x707ef09e

0xe74b41d6

0xa82c0f16

0x27a15690

0x8c643628

0xbfcbf976

0x4cd959aa

0x2f43d73a

0x5462300a

0x57290106

0xb02ace5a

0xef53f7fc

0x00402e36

0xff01b6a8

0x83657e3a

0xbb3b27fa

0xbb5eaeac

0xbb1017a0

0x8362672c

0xff02a650

1.liketoapproachproblemswithafreshperspectiveandtrytovisualizetheproblemathand,意思是将其内容转换成图像化

2.根据上面内容可知道是十六进制,我们可以将16进制数转化为图像,这里先尝试将16进制转换为二进制

000000000000000000000000000000000

011111111011100011111111011111110

010000011010010000000000010000010

010111011010000010100000010111010

010111011011010000100100010111010

010111011010010101000000010111010

010000011001000010011000010000010

011111111010101010101011011111110

000000000010110000010111000000000

001010111011011111011100110111110

001110000011111101111000010011110

011100111010010110100000111010110

010101000001011000000111100010110

000100111101000010101011010010000

010001100011001000011011000101000

010111111110010111111100101110110

001001100110110010101100110101010

000101111010000111101011100111010

001010100011000100011000000001010

001010111001010010000000100000110

010110000001010101100111001011010

011101111010100111111011111111100

000000000010000000010111000110110

011111111000000011011011010101000

010000011011001010111111000111010

010111011001110110010011111111010

010111011010111101010111010101100

010111011000100000001011110100000

010000011011000100110011100101100

011111111000000101010011001010000

3.这里看起来有点像一个二维码,可将0转化为白色,1转化为黑色,通过以下python脚本进行转换成二维码

6.最终扫描获得flag:

IceCTF{HAck1n9_mU5Ic_W17h_mID15_L3t5_H4vE_a_r4v3}

1.通过附件下载文件,获得capture.log文件,然后通过linux下的命令file查看文件类型,发现是pcap文件

192.168.0.9发起第1次攻击数据包序号:1

192.168.0.9第2次攻击数据包序号:148007

192.168.0.9第3次攻击数据包序号:150753

192.168.0.199第4次攻击数据包序号:155989

6.通过在线sha256生成

writeup:1.解压出来是这样的

2.warmup里是这样的

3.用winrar软件对图片raopen_forum.png压缩成open_forum.zip文件

4.比较两个文件的是否为同一文件,这里比较CRC32的值

5.使用工具AdvancedArchivePasswordRecover进行明文攻击

9.合成盲水印图:

pythonbwm.pydecodefuli.pngfuli2.pngwm_out.png

10.成功拿到flag:

1.先下载压缩文件,然后解压文件,得到一个wireshark的数据包文件,用wireshark打开。并且题目提示ping,那么ping属于icmp协议,过滤icmp协议

图片:

12.对py.pyc进行分析,发现.pyc的文件头03F30D0A缺少,以及该文件中添加隐藏了一个zip文件。这里通过winhex打开我们解压得到对00000000002.zip文件分析,发现是PK字符串开头(504B0304)

15.然后另存为flag.pyc.通过在线反编译可发编译出源代码出来:

#!/usr/bin/envpython

fromosimporturandom

defgenerate(m,k):

result=0

foriinbin(m^k)[2:]:

result=result<<1

ifint(i):

result=result^m^k

ifresult>>256:

result=result^P

continue

returnresult

defencrypt(seed):

key=int(urandom(32).encode('hex'),16)

whileTrue:

yieldkey

key=generate(key,seed)+0x3653C01D55L

defconvert(string):

returnint(string.encode('hex'),16)

P=0x10000000000000000000000000000000000000000000000000000000000000425L

flag1='ThIs_Fl4g_Is_Ri9ht'

flag2='Hey_Fl4g_Is_Not_HeRe'

data=open('data.txt','r').read()

result=encrypt(key)

encrypt1=bin(int(data,2)^eval('0x'+hex(result.next())[2:-1]*22))[2:]

encrypt2=hex(convert(flag1)^result.next())[2:-1]

encrypt3=hex(convert(flag2)^result.next())[2:-1]

print'flag1:',encrypt2

print'flag2:',encrypt3

f=open('encrypt.txt','w')

f.write(encrypt1)

f.close()

16.分析脚本发现flag1和flag2的密文在前面的zip注释信息已给出,脚本对三段明文使用了同个Seed做了加密,其中后两段明文和密文还有第一段的密文已知,考虑OTP加密。

其中encrypt实现的是一个256bit随机数生成器的功能,generate实现的是在有限域GF(2^256)下的平方运算:new_key=(old_key+seed)^2

因此,先由后两段明文和密文算出key2和key3,再在GF(2^256)下进行开方即可得到seed,key3=(key2+seed)^2

再由第一段密文(即base32隐藏的数据)key1和seed解得key1

Key2=(key1+seed)^2

17.最后写脚本通过上面的加密过程写出解码脚本如下:(最后对第一段密文(即base32隐藏的数据)和22次叠加的key1做异或得到原始二进制数据)

1.使用volatilityimageinfo-fmem.vmem查看内存映像

pythonvol.pyimageinfo-fmem.vmem

明文:I'vegotit.密钥:ok

密文:W'fsqcdwd.

首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到相同。本例中,明文长度为8个字母(非字母均被忽略),密钥会被程序补全为“okokokok”。现在根据如下维吉尼亚密码表格进行加密:

明文第一个字母是“I”,密钥第一个字母是“o”,在表格中找到“I”列与“o”行相交点,字母“W”就是密文第一个字母;同理,“v”列与“k”行交点字母是“F”;“e”列与“o”行交点字母是“S”……

在维吉尼亚密码中,发件人和收件人必须使用同一个关键词(或同一段字母),这个关键词告诉他们怎么样才能前后改变字母的位置来获得该段信息中的每个字母的正确对应位置。比如:如果关键字为“BIG”,发件人将把明文中的第一个字母按“B”行来加密(向后移动1个位置,因为B是排在A后面的第1个字母),明文中的第二个字母按“I”行来加密(向后移动8个位置,因为I是排在A后面的第8个字母),明文中的第三个字母按“G”行加密(向后移动6个位置,因为G是排在A后面的第6个位置),后面再循环操作即可完成加密任务。

例如:

明文:THEBUTCHERTHEBAKERANDTHECANDLESTICKMAKER。

密钥:BIG

密文:UPKCCZDPKSBNFJGLMXBVJUPKDITETKTBODSSBSKS

发现有重复的字母映射,猜测为维吉尼亚密码加密

由密文-->明文:(列为明文,行为密钥,交叉点为密文)

xybsxaxy-->flagjlfl

x-->f,推出第一个密钥为s

y-->l,推出第二个密钥为n

b-->a,推出第三个密钥为b

s-->g,推出第四个密钥为m

x-->j,推出第五个密钥为o

a-->l,推出第六个密钥为p

x-->f,推出密钥为s

y-->l,推出密钥为n

第7位后,密钥开始循环,所以

推出密钥:snbmop

4.根据在线工具可以获得xybs:xaxybs{W_Zf0j_o0fvxft}的明文:

1.看到二维码,第一件事就是先扫一下。发现扫不了,那么就肯定是码有问题了。

左下角的小狗挡住了呢,通过ps修复工具对其进行修复。(修复了定位点)

2.然后保存,通过现在QR识别工具即可识别出二维码

6.打开这个文件的文档,发现一段可疑的数据,分别复制出来

5555555595555A65556AA696AA6666666955,提示:曼联

在最初信号的时候,即第一个信号时:如果中间位电平从低到高,则表示0;如果中间位电平从高到低,则表示1。

后面的信号(从第二个开始)就看每个信号位开始时有没有跳变来决定:在信号位开始时改变信号极性,表示逻辑"0";在信号位开始时不改变信号极性,表示辑"1"。

1.根据题目提示曼联,可猜测是曼彻斯特编码

2.通过python脚本进行解密:

#!/user/bin/envpython2#-*-coding:utf-8-*-n=0x5555555595555A65556AA696AA6666666955flag=''bs='0'+bin(n)[2:]r=''defconv(s):returnhex(int(s,2))[2:]foriinrange(0,len(bs),2):ifbs[i:i+2]=='01':r+='1'else:r+='0'foriinrange(0,len(r),8):tmp=r[i:i+8][::-1]flag+=conv(tmp[:4])flag+=conv(tmp[4:])printflag.upper()

#!/usr/bin/envpython2.7(62211)#coding=utf-8fromrandomimportrandintfrommathimportfloor,sqrtpasswd=''flag='_'ordflag=[ord(i)foriinflag]#ordflag是flag中字符对应的ascii码randI=randint(65,max(ordflag))*255#randI是区间[65,flag中字符最大ascii码)内产生的随机数*255foriinrange(len(flag)):#循环次数为flag中字符个数passwd+=str(int(floor(float(randI+ordflag[i])/2+sqrt(randI*ordflag[i]))%255))+''printpasswd#串用空格分隔的数字5.代码分析:(1)获取flag字符串的ascii值

(2)在下限为65上线为flag的ascii码最大值之间取随机数,乘上255

(3)循环flag字符串,经过这个加减乘除开方的混合计算

(4)输出结果

那么flag.enc里面的数字就是最后输出的结果,需要反推flag字符

python代码输出格式是一串用空格分隔的数字。得到的这一串数字应该是用flag输出的。那么flag应该是19位(数字串中19个数字)。

因为变量falg是代表flag,那么flag中字符一定是字母大小写、0~9、{}这些字符组成的。

那么ordflag中ascii码最大是125(flag中的‘}’字符),就让randI从65到125遍历一遍。

最后得到的19个数字,每个数字对应一个字符,就把每个字符对应的数字都获取到,然后再跟正确的19个数字进行比对查看是哪19个字符。

核心思想是65-127的acil码的范围内,for每一个字符,每个字符都做tmpInt=int(floor(float(k+ANSInum[i])/2+sqrt(k*ANSInum[i]))%255)处理,处理出来与flag的数字逐一比较,并且以字典的方式保存取值,最终就可推出flag的每个字符

6.把另一个文件flag.enc文件用notepad打开:

208140149236189771931042021849723614820224419977122113

7.根据以上脚本写出解密flag,如下:

fromrandomimportrandintfrommathimportfloor,sqrtANSInum=[iforiinrange(33,127)]flagEnc=[208,140,149,236,189,77,193,104,202,184,97,236,148,202,244,199,77,122,113]forkinrange(65*255,127*255,255):tmpDict={}foriinrange(len(ANSInum)):tmpInt=int(floor(float(k+ANSInum[i])/2+sqrt(k*ANSInum[i]))%255)tmpDict[tmpInt]=chr(ANSInum[i])try:flag=''.join([tmpDict[i]foriinflagEnc])print'flag{'+flag+'}'except:pass

2.通过wireshark打开流量包后,按照协议进行分类,发现了存在以下几种协议类型:

ARP/DNS/FTP/FTP-DATA/ICMP/ICMPv6/IGMPv3/LLMNR/NBNS/SSDP/SSL/TCP/TLSv1.2/UDP

服务器地址:182.254.217.142

用户名:ftp

密码:codingay

5.但是通过分析数据包我发现了一些有价值的东西,发现了ftp的目录结构,追踪一下TCP流,查看目录结构。

目录包含了,flag.zip和key.log

12.加密的数据包?那就应该是TLS协议没跑了,又想到key.log这个文件还没有用,然后使用key.log对TLS协议进行解密,下面提取key.log文件

14.现在使用key.log对TLS协议进行解密。(操作步骤:编辑→首选项→Protocols→TLS,然后在下面导入key.log文件)

2.打开jiami.py文件内容如下:

#-*-coding:utf8-*-importpyminizipfromhashlibimportmd5importosdefcreate(files,zfile):password=os.urandom(15)#随机产生一个15字节的字符串password=md5(password).hexdigest()#获取这个字符串的md5值pyminizip.compress_multiple(files,zfile,password,0)#这是一个压缩文件的方法把files参数中文件压缩成zfile指定的文件,压缩密码是password,0可以理解为复杂程度值为1~9,默认是0passif__name__=='__main__':files=['jiami.py','gogogo.zip']zfile='crypto.zip'#就是把jiami.py和gogogo.zip两个文件压缩成crypto.zip密码是上面随机字符串的md5值create(files,zfile)

3.接下来打开crypto.zip提示有密码,也就是上述md5值,这个密码我们是不知道的。因为crypto.zip压缩包中有jiami.py文件,而jiami.py这个文件是已知的,因此我们可以用zip明文进行攻击。

明文攻击需要利用两个压缩包(已知文件的压缩包,和加密的需要破解的压缩包),这两个压缩包压缩方式要相同,直接对jiami.py文件进行压缩是不行的,也要用python的pyminizip模块进行压缩,脚本如下:

#-*-coding:cp936-*-importpyminizippyminizip.compress(r"jiami.py","",r"jiami.zip","",0)#没有密码

4.然后进行明文攻击,利用AdvancedArchivePasswordRecovery4.53进行利用,这里的crc32相同。

5.爆破成功保存为压缩包UnEncrypted.zip解压后得到gogogo.zip,解压得到AES.encryt、AESencrypt.py和RSA.encrypt三个文件

6.打开AESencrypt.py文件如下:

#-*-coding:utf8-*-fromCrypto.CipherimportAESs=open('next.zip','rb').read()BS=16pad_len=BS-len(s)%BSpadding=chr(pad_len)*pad_lens+=padding#把最后不满16个字节的用所缺字节个数值ASCII码对应的字符补足16个字节,如缺5个字节就补5个ascii码为5的字符,因为AES明文是128bit的倍数key='我后来忘了'#AES秘钥(未知)n=0x48D6B5DAB6617F21B39AB2F7B14969A7337247CABB417B900AE1D986DB47D971#两个大素数p与q乘积e=0x10001#RSA公钥65537m=long(key.encode('hex'),16)#秘钥key转16进制转整型,作为RSA的明文c=pow(m,e,n)#c是RSA加密后的密文c='0{:x}'.format(c).decode('hex')withopen('RSA.encrypt','wb')asf:f.write(c)

#RSA.encrypt文件的16进制就是RSA的密文,即就是AES秘钥key加密后的密文,已知obj=AES.new(key,AES.MODE_ECB)withopen('AES.encryt','wb')asf:f.write(obj.encrypt(s))#对next.zip进行AES加密,秘钥为key,AES.encryt文件中的内容即为AES加密后的密文已知。

7.整合已有信息就是,已知AES加密后的密文要解出AES的明文;但是AES秘钥不知道,要先求出AES秘钥key

key就是RSA的明文,已知RSA的密文c,两个大素数乘积n也已知可以求出p,q,然后求出RSA私钥,然后根据私钥,密文,n可以求出RSA明文(就是AES的秘钥key),然后根据AES密文和秘钥key就能解除AES的明文。

首先十六进的n转成10进制为:32945885482421841602167475970472000545315534895409154025267147105384142461297

p=177334994338425644535647498913444186659q=185783328357334813222812664416930395483

n=32945885482421841602167475970472000545315534895409154025267147105384142461297

e=65537

9.通过RSA-Tool2解出d=21459038613121460434132216103140795081593356519819592462521069311922260546829

10.通过脚本先打开读取RSA.encrypt文件,并转换成16进制,然后通过RAS的公钥和私钥,解密出RSA的密钥,也就是AES.encryt的key,AES秘钥key加密后的密文就是RSA密文,通过AES.encryt的key值解密出next.zip文件

脚本如下:

#-*-coding:cp936-*-fromCrypto.PublicKeyimportRSAfromCrypto.CipherimportAESdefegcd(a,b):ifa==0:return(b,0,1)else:g,y,x=egcd(b%a,a)return(g,x-(b//a)*y,y)defmodinv(a,m):g,x,y=egcd(a,m)ifg!=1:raiseException('modularinversedoesnotexist')else:returnx%m

p=177334994338425644535647498913444186659q=185783328357334813222812664416930395483n=32945885482421841602167475970472000545315534895409154025267147105384142461297e=65537#公钥d=modinv(e,(p-1)*(q-1))#RSA私钥c=open("RSA.encrypt","rb").read();c=long(c.encode('hex'),16)m=pow(c,d,n)#m是明文,转成字符串就是key="copy__white__key"key="copy__white__key"obj=AES.new(key,AES.MODE_ECB)s=open("AES.encryt","rb").read()str=obj.decrypt(s)withopen(r'next.zip','wb')asf:f.write(str)#解密后得到next.zip文件

11.解压next.zip文件得到encrypt.py、first、second三个文件。

12.打开encrypt.py内容:

#-*-coding:utf8-*-frombase64import*s=open('flag.jpg','rb').read()s='-'.join(map(b16encode,list(s)))

#list(s)每个字节(一个字符)作为列表的一项

#map(b16encode,list(s)),列表的每一项都执行b16encode(这个函数其实是得到字符对应的十六进制值),并将结果作为新列表中的项

#'-'.join(),列表中的每项都用‘-’分隔。

#最终的执行结果是flag.jpg文件的用‘-’分隔字节的十六进制数据

s=map(''.join,zip(*(s.split('-'))))

#zip(*(s.split('-')))得到两个元组,一个是每个字节的第一个16进制值组成的,一个是每个字节的第二个16进制值组成的

#然后作为一个新列表

withopen('first','wb')asf:f.write(b16decode(s[0]))#把第一个列表元素转成字符串写入first文件withopen('second','wb')asf:f.write(b16decode(s[1]))#把第二个列表元素转成字符串写入second文件

13.通过代码分析完也就是把flag.jpg文件的16进制值分成了两部分,每个字节的前4位组合成first文件,后4位组合成second文件。通过脚本合并生成flag.jpg:

#-*-coding:cp936-*-frombase64import*s1=open(r'first','rb').read()s2=open(r'second','rb').read()s1=''.join(map(b16encode,list(s1)))#获取16进制数据s2=''.join(map(b16encode,list(s2)))str=""foriinrange(0,len(s1)):str+=s1[i]+s2[i];#得到flag.jpg16进制数据str=str.decode('hex')withopen(r'flag.jpg','wb')asf:f.write(str)

14.得到flag.jpg图片

15.打开图片没有flag信息,用winhex(或010Editor)打开查看16进制数据,在图片结尾(FFD9)后面还有内容

16.16进制头为38425053(AdobePhotoshop(psd),文件头:38425053),根据文件头可以知道这是psd(PhotoshopDocument)文件(原理是用copy命令把jpg文件和psd文件合并在一起)

先选择块起始,然后再选择块结束,全部复制出来

5555555595555A65556A5A96AA666666A955

压力为30psi时的未解码报文为:

5555555595555A65556A9AA6AA6666665665

请给出ID为0xFEB757的传感器在压力为25psi时的解码后报文,提交hex。

注:其他测量读数与上一个传感器一致。

1.根据题目可知45pis和35psi的报文,这里都是16进制

压力45psi的报文5555555595555A65556A5A96AA666666A955

35psi报文:5555555595555A65556A9AA6AA6666665665

2.需要上面的报文都转换成十进制

#45psi

>>>bin(0x5555555595555A65556A5A96AA666666A955)

'0b10101010101010101010101010101011001010101010101010110100110010101010101011010100101101010010110101010100110011001100110011001101010100101010101'

#30psi

>>>bin(0x5555555595555A65556A9AA6AA6666665665)

'0b10101010101010101010101010101011001010101010101010110100110010101010101011010101001101010100110101010100110011001100110011001100101011001100101'

3.再对其进行曼彻斯特编码:

45psi:10101010101010101010101010101011001010101010101010110100110010101010101011010100101101010010110101010100110011001100110011001101010100101010101

曼切斯特是从低到高跳变表示“1”,从高到低跳变表示“0”,即01->1,10->0,11>1,将编码进行曼切斯特解码

111111111111111101111111110010111111100011000110000010101010101000011111

反转:

111111111111111111111110110100110001111101100011010100000101010111111000

将其转换成十六进制

>>>hex(0b111111111111111111111110110100110001111101100011010100000101010111111000)

'0xfffffed31f635055f8'#其中包含了ID值0xFED31F,与题目所给ID:0xFED31F契合

经反转处理后Hex:FFFFFED31F635055F8

30psi:10101010101010101010101010101011001010101010101010110100110010101010101011010101001101010100110101010100110011001100110011001100101011001100101

111111111111111101111111110010111111100001000010000010101010101011101011

反转:(每8位都进行一次反转)

111111111111111111111110110100110001111101000010010100000101010111010111

将其转换成十六进制:

>>>hex(0b111111111111111111111110110100110001111101000010010100000101010111010111)

'0xfffffed31f425055d7'

经反转处理后Hex:FFFFFED31F425055D7

然后发现校验值为从ID开始每字节相加的和模256的十六进制值即为校验值即:例如:FFFFFED31F635055F8FE+D3+1F+63+50+55=2F8(F8即校验值)再例如:FFFFFED31F425055D7FE+D3+1F+42+50+55=2D7(D7即校验值)那么同理:对于题目中的25psi:FFFFFEB757375055FE+B7+57+37+50+55=2E8校验值应该为E8即得到flag:flag{FFFFFEB757375055E8}

5.观察到给定的两组数据只有两个字节有差异,其中前面一个字节代表压力值,后一个字节猜想是校验值,同时注意到二者的差是相同的,于是初步确定校验算法是前面字节的和,但是每次都差2,于是去掉开头的两个字节FFFF,得到的校验值低8位匹配。通过脚本如下:

defdecode(a):t=bin(a)[2:].rjust(144,'0')counter=0res=[]temp=[]foriinrange(0,len(t),2):ift[i]=='0':temp.append('1')else:temp.append('0')iflen(temp)==8:temp.reverse()res.append(int(''.join(temp),2))temp=[]fin=""fortinres:fin+=hex(t)[2:].rjust(2,'0').upper()returnfindefcheck(m):sum=0sum+=(m>>8)&0xffsum+=(m>>16)&0xffsum+=(m>>24)&0xffsum+=(m>>32)&0xffsum+=(m>>40)&0xffsum+=(m>>48)&0xffreturnsum&0xfft=0xfffffeb75700505500i=0x20whilei<0x43:m=t+(i<<24)code=check(m)m+=codei+=1print"flag{"+hex(m)[2:-1].upper()+"}"

5.可以看到是传了webshell然后进行文件操作,一般是传webshell然后菜刀连接,参数进行base64位加密,先解密参数

6.没发现可利用的,然后对上面传输的编码进行unicode转成ascii

7.最终得到flag:

flag{si11yb0yemmm}

1.在其他地方找来一张完整的二维码,然后通过ps截取定位矩阵框,进行修复,最终得到

THE END
1.4款能够在线制作的网页版PS推荐本文为大家推荐 4 款能够在线制作的 PS 网页版,它们是即时设计、AdobePhotoshopExpress Editor、Photopea 与 PhotoScape X,其中即时设计作为国产的设计软件,对于个人及中小团队能够免费使用。PS 因为其先进的图片编辑功能而受到大家的广泛好评,但是它对于使用设备有很高的规格要求,为了使大家能够方便的进行图像编辑,今天为https://js.design/special/article/ps-webpage-version-online.html
2.在线透明抠图有哪些在线PS网站工具,可以处理图片和抠图的?总之,在线PS网站工具为用户提供了方便快捷地进行透明抠图的解决方案,无需安装任何软件即可完成任务。无论https://ask.zol.com.cn/x/25076655.html
3.有哪些在线PS网站工具可以进行抠图的?速抠图 SUkoutu.com一款免费专业的在线抠图网站,在线抠图工具支持8倍高清智能抠图、钢笔抠图、矩阵抠图、https://www.3d66.com/answers/question_128186.html
4.抠图在线抠图软件在线ps抠图换背景工具创客贴提供免费在线抠图软件和在线ps抠图工具,无需下载PS软件也能轻松实现ps抠图效果,上传抠图图片即可一键自动智能抠图,简单三步即可拥有透明背景图片。https://www.chuangkit.com/koutu
5.免费在线PS图片处理工具,随时随地创作更高效那么有什么可以免下载就能使用的免费在线PS吗?小编今天就来介绍一个超好用的免费在线PS工具,免安装就可以实现大部分PS功能,一起来看看吧!PSD文件一键转透明PNG PSD是一种PS专用的图片文件格式,但大多数图片处理软件不支持直接修改PSD格式文件的,所以我们可以选择将PSD中的透明背景图像转换成无背景的PNG,而使用在线PShttps://img.logosc.cn/a/635
6.PS在线工具免安装在线处理图片编辑器对于设计师来说 PS 的强大不容置疑,噢不,应该是 Photoshop 图片处理工具,有时候只是简单处理图片,比如去背景、改尺寸、改颜色等等简单的操作,Boss 觉得有没有一个工具实现这些小需求,无需惊动 Photoshop 软件呢?Bohttps://www.uishe.cn/71254.html
7.想用Photoshop免费在线?这10个免费在线工具就不错!对于新手设计师而言,短时间内攻克繁琐的PS编辑操作并拥有新潮创作力是一项艰难的工作,而新一代Photoshop免费在线工具替代Pixso,不仅拥有矢量网格图层混合模式,同时Pixso站内的UI编辑组件,帮助设计师灵活性完成设计产品。无论是新手设计师,还是高级设计师,使用在线版“PS”编辑软件Pixso的好处显而易见,譬如: https://pixso.cn/designskills/free-online-photoshop/
8.分享5款免费在线ps网页版工具,在线ps图片编辑器在线PS,即在线Photoshop,是一种无需下载和安装即可在浏览器中使用的图片处理工具。这类工具通常提供与桌面版Photoshop相似的功能,包括但不限于图像编辑、调整、美化等。小编为大家收集整理了5款免费在线PS网页版工具,方便有需要的同学选择使用。 1.稿定设计在线PS https://blog.csdn.net/ITdgr/article/details/140544898
9.想用网页版Photoshop?这2个免费在线工具就很不错!优设网Pixlr 也是一个功能非常全面的在线图像编辑工具,界面与 Ps 类似,图像处理常用的调色、滤镜、修复等功能都有。Pixlr 还提供全面的媒体用图预设尺寸和丰富的模板资源,功能比 Ps 更加简单直白,上手简单,非常适合有简单修图和编辑图片需要但又觉得 Ps 过于复杂的朋友。 https://www.uisdc.com/free-online-tools
10.PhotopeaPhotopea是一款老牌、免费的在线 PS 工具,支持众多格式,让你在浏览器里也能进行 PS 操作。适合于偶尔有图片编辑需求,但还不至于去购买 PhotoShop 的用户。@Appinn 今天为了给论坛各位老爷颁发新年徽章,需要剪裁一下 svg 文件,但已经很久不用 ps 了,电脑里都没有…于是想找一款在线工具用用。随手搜索了不少 svg https://www.appinn.com/photopea/
11.PS线上替代工具,无需下载免费使用当然,由于 GIMP 是由志愿者开发的开源软件,在产品设计上与 PS 还是有比较大的差异,即便你之前习惯使用 PS,在首次接触 GIMP,你需要重新适应和学习 GIMP 的操作方式。 Pixso Pixso,一个免费的在线设计工具,既可以用于矢量设计,也能用于位图设计,当你用作位图处理工具时,Pixso就是一个很好的在线 PS 替代软件。 https://www.fromgeek.com/daily/1044-485316.html
12.在线PS免费PhotoShop《人像AI抠图》快速照片编辑器,ps官网在哪里可以不用下载免费的ps软件,就可以在线P图,哪一款ps软件好用不收费就用webPS在线图片处理工具。免费photoshop直接在浏览器打开PSD|png|jpg|gif|cdr|AI等https://www.webps.com/
13.Photopea免费还用的在线PS工具国外最好用的在线ps,和普通ps操作基本无差异https://www.91sotu.com/details/5c57af467c72e6337268f4d2
14.没有PS怎么办?这4个在线作图神器,轻量高效还免费爱范儿没有PS 怎么办?这 4 个在线作图神器,轻量高效还免费 对于大部分工作来说,Photoshop 都是一个很常见的工具。 很多时候我们都要用到这些工具,来满足一些简单的排版、图片处理、尺寸调整或者是做一些简单的效果,这些都需要用到 Photoshop。 但很多时候,我们手上会因为没有 Photoshop 而造成不少尴尬。https://www.ifanr.com/app/1169440
15.在线PSPS软件网页版,ps在线图片处理工具photopea创建新图像或打开已有文件。保存你的作品为 PSD 格式(文件 - 另存为 PSD)或 JPG / PNG / SVG 格式(文件 - 导出为)。 在我们的 GitHub 或 Facebook 上提出功能需求。我们的目标是打造 最强大而易用的图片编辑器 关于反馈 Bug学习 自动选择变换工具距离 http://www.360doc.com/content/20/0509/04/1530445_911088604.shtml
16.Photopea在线PS工具免费在线图片编辑器界面与快捷键:界面设计模仿Photoshop, 提供了熟悉的工具栏和快捷键, 使得有Photoshop使用经验的用户能够快速上手。 多语言支持:Photopea支持多种语言, 包括中文, 使得不同语言背景的用户都能方便使用。 相关导航 稿定在线PS - 在线PS工具,轻松处理图片 无需下载,即刻享受Photoshop级别图片编辑体验 https://hao.archcookie.com/sites/530.html
17.还在用PS抠图?这个免费的在线工具,帮你一键去除背景这个免费的在线工具,帮你一键去除背景 或许你不是常常需要将图片去除背景的设计师,但偶尔也可能遇到需要去除背景照片的需要。例如想要制作表情包,或是老婆最近想把孩子照片去背后放在红包上,工作上的简报、报告临时需要一张去背景的图片。 最近,发现一个很好用的免费照片去背景工具:PhotoScissors,或许可以成为目前免费线https://maimai.cn/article/detail?fid=1208689772&efid=CbIcg53MwplKp57Qzfqv-A
18.在线PS在线图片编辑制作工具在线图片处理软件观达云设计(在线PS),免费平面设计软件,海量精美图片模板素材,免下载立即使用,3步在线制作图片,不用ps,1分钟在线图片编辑,拖拽操作,简单好用的在线图片处理工具。https://www.guandayun.com/yunsheji.html
19.在线PSps软件在线Photoshop编辑图片器ps, ps在线Photoshop图片处理软件是一个专业的在线ps图片编辑器软件。免费PS软件强大的在线Photoshop设计满足您对照片编辑、美化、抠图的所有需求。https://www.tuyitu.com/
20.改图鸭改图鸭作为在线版图片格式处理工具,提供图片编辑、图片格式转换、图片压缩等大量的图片处理功能,用户不用下载任何软件,只需将图片上传到官网即可对图片进行编辑,方便快捷https://www.gaituya.com/
21.在线PS软件在线PS软件网站:在线PS图片(照片)处理工具PS在线图片编辑器是一个专业精简的在线ps图片照片制作处理软件工具,绿色免安装,免下载,直接在浏览器打开就可用它修正,调整和美化图像。https://www.dh88.cn/site/1751.html
22.我的程序员专属导航站已上线,可群里的LSP给我整不会了其他工具 创可贴(在线PS) https://www.chuangkit.com/ 一款免费(免费功能足够我使用了)的在线PS工具,部分站点的logo比较的特殊,太大(512 x 512)占用空间、太小(16 x 16)清晰度不够;为了这些问题,需要将这些素材针对性处理一下; 如果你没有使用专业的PS技能,就可以使用这款在线的工具,能轻松帮你处理图片: https://cloud.tencent.com/developer/article/1973932
23.在线PSPS软件网页版,ps在线图片处理工具photopea支持PSD,XCF,Sketch,XD和CDR格式的免费在线编辑器。 (Adobe Photoshop,GIMP,Sketch App,Adobe XD,CorelDRAW). 创建新图像或打开已有文件。保存你的作品为 PSD 格式(文件 - 另存为 PSD)或 JPG / PNG / SVG 格式(文件 - 导出为)。 在我们的GitHub或Facebook上提出功能需求。我们的目标是打造最强大而易用的图https://www.360doc.cn/article/50107869_920402072.html
24.在线PSPS软件网页版,ps在线图片处理工具photopeaPS是一款专业精简的在线ps图片处理软件,免下载、免安装,直接在浏览器打开网页版就可随时随地用它修正,调整和美化您的图片。http://www.1ygo.net/
25.照片在线修复工具photolab详细教程:不用PS也可以成为P图达人不用PS也可以成为P图达人,它几乎可以不受任何限制地将您的照片制作成各种令人惊叹的效果!照片在线修复工具photo lab应该怎样使用呢?脚本之家小编告诉你。 Photo Lab PRO(趣味拍照软件) for android v3.12.73 pro 安卓版 类型:趣味娱乐 大小:27.49MB https://www.jb51.net/softjc/522358.html
26.在线PS钢笔工具练习器bezier.method.ac本站收录的"在线PS钢笔工具练习器“数据均来源网站“bezier.method.ac”及互联网,以上数据具有时效性,因网站域名、网站名称及内容会受域名过期、网站服务器故障、域名所有者更替或内容变化,而存在以上内容失效、错误等情况,请多谅解。loading alexa data pic 网站常用标签 在线PS钢笔工具练习器 Photoshop钢笔工具 http://www.948v.com/prodetail1456784.html
27.官方版AdobePhotoshopAdobe Express 是您按一下即可編輯影像的必備工具,它提供數千個免費範本,可用於社交媒體內容和傳單等。最棒的是,這項工具已經包含在您的 Photoshop 方案中。 有疑問嗎?我們可以為您解答 此Adobe 网站与您的位置不匹配。 根据您的位置,我们建议您访问中国的网站,该网站会为您提供本地内容、产品和价格。 https://www.adobe.com/tw/products/photoshop.html
28.图怪兽作图神器在线海报编辑器PS图片制作图怪兽作图神器,是一个在线ps图片编辑器,它相当于ps精简版软件,可提供微信编辑器功能,在线ps照片处理,拼图,图片制作,在线设计,平面设计,海报设计,在线图片处理等功能。图怪兽作图不求人处理简单易用,这款在线图片编辑软件让设计海报模板图片更轻松,帮助企业视觉营销投入成本http://www.pikhive.com/
29.处理图片,就用这几个在线工具!今天带给大家的是几个在线图片处理和图片制作网站,非常的好用。 稿定设计 网址:https://ps.gaoding.com/#/?hmsr=zc-cc 在线PS是稿定设计联合Photopea打造的最强在线PS工具,是一个完全免费的在线PS网站,它与PS电脑软件相似度非常高,无需下载软件,也可以拥有和PS 电脑软件一样的操作和体验。 https://www.meipian.cn/41944fy8
30.在线图片编辑器,在线PS软件,在线PS图片(照片)处理工具PS在线图片编辑器是一个专业精简的在线ps图片照片制作处理软件工具,绿色免安装,免下载,直接在浏览器打开就可用它修正,调整和美化图像,在线快速图片和视频编辑,不会PS也能完成设计,海报、简历、PPT、公众号配图、电商等海量模板快速出图。三秒抠图实用便捷,抖音快手热门https://www.qtool.net/image
31.在线PSPS软件网页版,ps在线图片处理工具photopea稿定设计PS是一款专业精简的在线ps图片处理软件,免下载、免安装,直接在浏览器打开网页版就可随时随地用它修正,调整和美化您的图片。 在线PS软件网页版-Photopea:一站式设计工具 概述 欢迎访问,您的一站式设计工具。我们提供强劲的在线PS软件,以及多种实用的图片处理工具,满足您的设计需求。无需下载,随时随地https://www.baobaocun.com/thread-695166-1-1.html
32.在线PSPS软件网页版,ps在线图片处理工具photopea,无需下载安装的永久免费版photoshop网页版,轻松帮助设计师高效流畅的完成设计工作。 网站数据 目前在线PS的浏览人数已达到7,517,如需查询该站的相关权重数据,请点击[爱站数据],[Chinaz数据]进行浏览访问。 特别声明 https://www.jspoo.com/wz/1151.html