实习所学

#最重要的:不要强解,累的时候休息一下,idea first
sudo -i
cd /home
python mas.py -c mastiff.conf -V …/tbd
python2 -m pdb mas.py -c mastiff.conf ./tests/test.exe
make check
python mas.py -c mastiff.conf -V …/td
python pt.py ./ks2 ./newfile2

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent (gevent是变量) 速度太慢取消重新执行更快,速度变化不稳定,命令行下载完pycharm也会同步更新
清华:https://pypi.tuna.tsinghua.edu.cn/simple (推荐)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple matplotlib
阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/
pip3 install -i http://pypi.douban.com/simple matplotlib

python parselog.py …/work/log/ …/ks2

unzip update.zip -d update

扩容直接拉(注意选对目标位置,先扩外层再扩里层)
b2058d3f2b2a9ed7fc3ba99bac058552

//配置网络
sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state 
sudo service network-manager start

sudo apt-get install gparted 
sudo gparted 

记得删work
问题:json中出现null值的数据
原因:虚拟机宕机异常结束时数据没有写完
解决方式 1:删除log重新写 2用lem() = 0来记录异常数据重新跑
du -sh #查看内存
try中任意一行语句出现异常,直接跳转至except,程序继续运行

首先将原始文件计算hash值(该数值可以代替该文件,后续都使用该hash,如果文件正常执行结束源文件会被删除,bin中存的是hash)
出问题有两种可能,一种是mas出错,该出错文件任然在源文件中,另一种是parselog出问题,该问题源文件中已经不存在,可以去bin中找(只有一开始有源文件名,后面都使用hash代替)
重新跑mas中的程序可以解决部分问题(16-11-7)
应该对所有错误与异常都有处理的对策
#for new version pe.FileInfo[0]: [[]]
# for fileinfo in pe.FileInfo[0]:
for fileinfo in pe.FileInfo:

第二步失败的包里bin里没有,log里有,必须给log的目录
arg[0]是xx.py,参数是用空格分开的

work/log/2c1f303e6ffcf09ef94b4911940e3ef1 #问题出在插件的GEN-fileinfo.json不产生数据
File “/home/yangkun2/p2/mastiff-0_7_0_DS1_DEV3/plugins/EXE/EXE-peinfo.py”, line 76, in analyze
if not self.output_file_quick(config[‘log_dir’], pe) or not self.output_file_full(config[‘log_dir’], pe):
File “/home/yangkun2/p2/mastiff-0_7_0_DS1_DEV3/plugins/EXE/EXE-peinfo.py”, line 121, in output_file_quick
if fileinfo.Key == ‘StringFileInfo’:
AttributeError: ‘list’ object has no attribute ‘Key’

出错了python,import 对应的库,自己试例子

django 引入layui:http://m.zhizuobiao.com/web/html/html-18091000229/

大数据json转成str存入
一个request是一个请求连接,跳转会改变request,从而改变在该request中的存储。解决方法:把公共变量存入ini(为解决问题而解决问题)
第二次改进存在session中,但一次session浏览器重复访问会出问题,不同浏览器不是同一session
给md5加索引加快索引速度
md5会产生冲突

not found 可能是浏览器缓存的原因,清除缓存即可
json.dump的返回值是str,但存到数据库再读取出来就为list
解决方法:s2 = “”.join(s[0]) #list转换后长度为1
判空用len()== 0
跳转页面才会变request

SELECT count() FROM REPORT Where time Between ‘2020-06-22’ And ‘2020-06-23’ #左闭右开
SELECT count(
) FROM REPORT WHERE time Between ‘2020-06-24’ And date(‘2020-06-24’,’+1 day’);
时间类型精确到用等于就查不了

单一的for前端展示,开代码
bug:将else file_info 去掉,那是个循环
(i+1) % 4 可以将结果错位

{% for key,value in ct.items %}
t.push({{ key }})
t1.push({{ value }})
{% endfor %}
js中不能这样遍历 js 就不能通过{{}} 来交互数据,要加safe才可以
----views.py----
from django.shortcuts import render
def main_page(request):
list = [‘view’, ‘Json’, ‘JS’]
return render(request, ‘index.html’, {
‘List’: json.dumps(list),
})
----js----
var List = {{ List|safe }};
这样可以解决

echarts:https://www.cnblogs.com/nanyang520/p/11002189.html

做的事情:静态分析文件类型,很多维度。反编译16进制,自然语言匹配浓缩数据(push,push,push,memset这种合并),对文件执行流程也作为输入参数,找一些恶意文件的公共函数。最终达到对恶意文件的分类/

DEBUG = False #err
ALLOWED_HOSTS = [’*’] #err
这个一开找不到文件了 解决方式:https://www.cnblogs.com/ievjai/p/9926187.html
可以用变量来解决动态生成数据的问题
js里不能使用pycharm的默认注释,会报错,用//
json转换的时候 None无法转换,多看前端控制台

{% if t11 != ‘NULL’ and t11 is not None%}
超级管理员权限下创建的dir是有权限的
win和ubuntu直接复制文件夹失败可以尝试压缩成zip,再unzip

win下的pycharm项目无法直接复制运行在linux,需要重新配置(安装ubuntu版的pycharm即可sh ./pycharm.sh ) ./pycharm.sh 是启动方式,直接pip3 install 也可以下载库在对应的项目里

动态生成数据与json格式化
document.getElementById(“nope”).id = ctid;
data = {{ v|safe }}//可以得到,一定要加safe
jsonData = JSON.stringify(data, null,4);//解决None无法转换的问题
document.getElementById(ctid).innerText = jsonData
ctid = ctid + 1;

前端展示过滤器{|safe}等,链接https://www.cnblogs.com/Deaseyy/p/10859893.html

裸机安装ubuntu 1.下载ubuntu.iso 2.制作系统盘(会格式化u盘,用https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/)(如果失败换一个软件)
3.再裸机选择从usb启动(不同机可能不一样) 4.裸机选择install ubuntu,语言选择英文(中文容易出问题)
pip3 安装不上:
sudo apt-get update
sudo apt -get upgrade

pycharm可以运行cmd找不到模块,一定要放在第一行
import os
import sys

p = os.path.dirname(os.path.dirname((os.path.abspath(‘file’))))
if p not in sys.path:
sys.path.append§

部署的时候127.0.0.0是本地其他电脑不能访问,可以改成0.0.0.0就可以让所有1
的访问

unzip -P infected -x 2020-07-01.zip -d /home/yangkun2/p1/bd
cp -r bd ./tbd

linux与win交互数据(PowerShell(win + r + powershell))
scp .\cmd.txt yangkun2@10.65.15.106:/home/yangkun2/Downloads/
scp -r .\time\ yangkun2@10.65.15.106:/home/yangkun2/Downloads/
scp yangkun2@10.65.15.106:/home/yangkun2/Downloads/cmd.txt ./cmd.txt2
(-r复制目录)
ssh yangkun2@10.65.15.106可以远程登录(ubuntu需要装ssh)
.sh结尾的脚本可以用bash来执行,创建用touch
su username 切换用户
gedit比vim更好用
获取当前文件夹下的数目:ls -l | grep “^-” | wc -l

os.system 多条逻辑命令要加&&,执行完后会返回执行py的目录,可以在每次执行前先cd再+‘&&’+这样来执行命令。

写脚本需要chmod + x不然无法执行。
主键自增必须是integer类

原样复制不会改变时间
使用mv一定要判断目标位置是否有同名的
单线程数据库自己把自己死锁了,单线程又开启了新的数据库连接(md5 == getMd5(md5))
mv移动文件夹重名非空时不能直接覆盖
mv -fb ./log/* ./stoLog/,这个只能执行一次

pdf @fcn.0085ef01 >> /home/yangkun2/p4/zzz.txt(不能用os.system去控制进入后的代码,但可以使用对应的api去控制)
将控制台打印结果输出到指定位置
python和python3默认存储pip下载的位置不一样

只有post才能提交json=data
api的核心是定义的response,去处理各种url的请求
https://www.jb51.net/article/140724.htm
https://cuckoo.sh/docs/usage/api.html

加快git速度
git clone https://github.com.cnpmjs.org/Hackergeek/architecture-samples

docker:
1.安装:
1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i ‘s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list
sudo apt update

2.安装需要的包

sudo apt install apt-transport-https ca-certificates software-properties-common curl

3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository “deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu
$(lsb_release -cs) stable”

4.添加成功后更新软件包缓存

sudo apt update

5.安装 Docker-ce

sudo apt install docker-ce

6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)

sudo systemctl enable docker
sudo systemctl start docker

7.测试运行

sudo docker run hello-world

8.添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)

sudo groupadd docker
sudo usermod -aG docker $USER

9.测试添加用户组(可选)

docker run hello-world
https://blog.youkuaiyun.com/wireless911/article/details/88989620
curl -L https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-uname -s-uname -m | sudo tee /usr/local/bin/docker-compose > /dev/null
sudo chmod +x /usr/local/bin/docker-compose
docker image pull python:3.6

2.部署django项目
https://www.zhangshengrong.com/p/l51g6MZwX0/
docker分为镜像(class)和容器(实例)
Docker 允许通过文本格式的配置文件来构建镜像,默认名称为 Dockerfile(直接新建file不加后缀)。因此在项目根目录
pip freeze > requirements.txt (生成re.txt,但是新建python环境不可以把inherent打钩,不点会去vene下找,点了会去全局找,找不到才会报)
编译文件 docker build -t f1 .
docker run --name world --restart=always -v /root/code:/code -p 8000:8000 f3
docker run --name world --restart=always -v /root/code:/code -p 8000:8000 f3 python3 /code/manage.py runserver 0.0.0.0:8000
那些readonly的本质都是用sudo打开的
docker rm -f $(docker ps -aq)
docker images
docker rmi 04509677319a

ERROR: Could not open requirements file: [Errno 2] No such file or directory: ‘requirements.txt’
当前的执行环境已经在docker里,要先add才能找到re
可以改dockercomposeup的配置来改端口

查看镜像的目录结构
docker ps -a
docker exec -it containerID /bin/bash
docker update --restart=no [容器名]
docker update --restart=always [容器名]
docker update --restart=on-failure:3 [容器名]

rror response from daemon: Container is not running
docker start 757d542c43e5

docker-compose up 之后

文件尽量用二进制读写,这样不涉及编码,传输文件使用FileResponse(open(file,‘rb’)),会自动close

报错信息并不一定真的是这个错,很多时候是误导向的,不要过分执着于一个方方向找问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值