kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

window 跟踪程序打开文件 Procmon

https://learn.microsoft.com/en-us/sysinternals/downloads/procmon

用 Process Monitor 就能精准跟踪程序打开的文件,这是微软 Sysinternals 工具集里的专业级监视工具,能实时记录某个进程对文件系统的所有操作,包括打开、读取、写入、删除等。

核心操作步骤

下载与启动:从微软官网下载 Process Monitor(Procmon.exe),绿色单文件,双击运行即可。

清空基线:先停止捕获(Ctrl+E),再清空历史事件(Ctrl+X),避免系统后台操作干扰日志。

设置过滤:点击工具栏漏斗图标,按 Process Name 过滤目标程序名(如 notepad.exe),再按 Operation 添加 CreateFile、ReadFile、WriteFile 三类操作,点击 OK 生效。

复现操作:启动目标程序,执行要跟踪的动作,完成后立即停止捕获(Ctrl+E)。

分析结果:事件列表会显示目标进程打开过的文件路径、操作类型和结果,双击任意条目可看详细信息。

BAT脚本获取当前文件夹路径

bat 临时设置 path

1
2
3
4
5
6
7
@echo off
:: 将 D:\MyTools 添加到当前会话的 PATH 末尾
set "PATH=%PATH%;D:\MyTools"

:: 验证是否生效
where mytool.exe
pause

获取命令提示符当前工作目录

使用%cd%环境变量可以获取命令提示符的当前工作目录。以下是完整的BAT脚本实现:

1
2
3
4
@echo off
:: 获取当前文件夹路径并显示
echo 当前文件夹路径是:%cd%
pause

获取批处理文件所在目录

使用%~dp0变量可以获取批处理文件本身所在的目录路径。

1
2
3
4
@echo off
:: 获取批处理文件所在目录路径并显示
echo 批处理文件所在目录路径是:%~dp0
pause

%cd% 当前工作目录

%~dp0 批处理文件所在目录

致远附件解密

JD-GUI 打开 jar、class 还原代码

https://java-decompiler.github.io/

1.10.3. 附件解密

https://open.seeyon.com/seeyon/webhelp/APIdoc/content/ch10s03.html

系统中存储的附件都按设置的加密算法进行了加密,如果要手动对存储的附件进行解密,可以调用CoderFactory.getInstance().download方法(依赖seeyon\WEB-INF\lib\seeyon_ctp_core.jar),如下所示。

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
    import com.seeyon.ctp.common.encrypt.CoderFactory;
     /**
      * 解密附件。
      * @param input 附件文件对象
      * @param output 解密后的附件
      * @throws Exception
      */
     public void decrypt(File input, File output) throws Exception {
         FileOutputStream fop = null;
         FileInputStream fin = null;
         try {
             fop = new FileOutputStream(output);
             fin = new FileInputStream(input);
             CoderFactory.getInstance().download(fin, fop);
             fop.flush();
             fop.close();
         } catch (Exception e) {
             throw e;
         } finally {
             try {
                 if (fop != null) {
                     fop.close();
                 }
                 if (fin != null) {
                     fin.close();
                 }
             } catch (IOException e) {
 
             }
         }
     }