Skip to content

Commit 99b63bb

Browse files
committed
备份: 2025-01-13 18:25:00
1 parent e5e6479 commit 99b63bb

File tree

5 files changed

+105
-22
lines changed

5 files changed

+105
-22
lines changed

src/CyberSecurity/RedTeam/Tools/SQLmap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1261,7 +1261,7 @@ MySQL 4.0, 5.0
12611261

12621262
**3: space2morehash.py**
12631263

1264-
作用:空格替换为 #号 以及更多随机字符串 换行符(和上一条原理一致)
1264+
作用:空格替换为 `#` 以及更多随机字符串换行符(和上一条原理一致)
12651265

12661266
示例:
12671267

src/develop/Go/gopl/ch2.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ Go语言中的函数名、变量名、常量名、类型名、语句标号和包
6363

6464
例如,下面的例子中声明了一个常量、一个函数和两个变量:
6565

66-
*gopl.io/ch2/boiling*
67-
6866
```Go
6967
// Boiling prints the boiling point of water.
7068
package main
@@ -92,7 +90,6 @@ func main() {
9290

9391
在这个例子中,main函数就调用了两次fToC函数,分别使用在局部定义的两个常量作为调用函数的参数。
9492

95-
*gopl.io/ch2/ftoc*
9693

9794
```Go
9895
// Ftoc prints two Fahrenheit-to-Celsius conversions.
@@ -1182,14 +1179,24 @@ func main() {
11821179

11831180
```
11841181
1185-
![image-20240328161707443](./img/ch2/image-20240328161707443.png)
11861182
1187-
#TODO: c:\为啥要小写
1183+
![](./img/ch2/image-20240328161707443.png)
1184+
1185+
#TODO : c:\为啥要小写
1186+
11881187
11891188
> 使用Example_xxx的形式进行测试的时候发现,路径中的c:\必须小写才能验证通过,但是写进一个正常的函数里,输出就是大写的C
11901189
1191-
![1712474443260](img/ch2/1712474443260.png)
1190+
1191+
![](img/ch2/1712474443260.png)
1192+
11921193
11931194
下图为使用fmt.Printf和log.Printf的输出
11941195
1195-
![1712474628866](img/ch2/1712474628866.png)
1196+
1197+
![](img/ch2/1712474628866.png)
1198+
1199+
1200+
1201+
1202+

src/develop/Go/gopl/ch3.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ fmt.Printf("%08b\n", x>>1) // "00010001", the set {0, 4}
140140

141141
```
142142

143-
![1712132982776](img/ch3/1712132982776.png)
143+
![](img/ch3/1712132982776.png)
144144

145145
在x<<n和x>>n移位运算中,n必须是无符号数,x均可。例如上面用i := int(-1)就编不过
146146

@@ -210,7 +210,7 @@ f := 1e100 // a float64
210210
i := int(f) // 结果依赖于具体实现
211211
```
212212

213-
![image-20240409145949392](./img/ch3/image-20240409145949392.png)
213+
![](./img/ch3/image-20240409145949392.png)
214214

215215
* 任何大小的整数字面值都可以用以0开始的八进制格式书写,例如0666,八进制数据通常用于POSIX操作系统上的文件访问权限标志;
216216
* 或用以0x或0X开头的十六进制格式书写,例如0xdeadbeef,(大小写都可),十六进制数字则更强调数字值的bit位模式。
@@ -308,7 +308,7 @@ nan := math.NaN()
308308
fmt.Println(nan == nan, nan < nan, nan > nan) // "false false false"
309309
```
310310

311-
![image-20240411172248377](./img/ch3/image-20240411172248377.png)
311+
![](./img/ch3/image-20240411172248377.png)
312312

313313
如果一个函数返回的浮点数结果可能失败,最好的做法是用单独的标志报告失败,像这样:
314314

@@ -324,7 +324,7 @@ func compute() (value float64, ok bool) {
324324

325325
接下来的程序演示了通过浮点计算生成的图形。它是带有两个参数的z = f(x, y)函数的三维形式,使用了可缩放矢量图形(SVG)格式输出,SVG是一个用于矢量线绘制的XML标准。图3.1显示了sin(r)/r函数的输出图形,其中r是`sqrt(x*x+y*y)`
326326

327-
![image-20240415134037655](./img/ch3/image-20240415134037655.png)
327+
![](./img/ch3/image-20240415134037655.png)
328328

329329
```go
330330
// Surface computes an SVG rendering of a 3-D surface function.
@@ -453,7 +453,7 @@ w.Header().Set("Content-Type", "image/svg+xml")
453453

454454
打印异常的时候还得把"Content-Type"转成text,要不然:
455455

456-
![image-20240415143331842](./img/ch3/image-20240415143331842.png)
456+
![](./img/ch3/image-20240415143331842.png)
457457

458458
```go
459459
package main
@@ -650,7 +650,7 @@ func mandelbrot(z complex128) color.Color {
650650
>
651651
> 此处要用cmd执行go run mandelbrot.go > out.png ,要不然powershell会出问题:
652652
>
653-
> ![image-20240415153609218](./img/ch3/image-20240415153609218.png)
653+
> ![](./img/ch3/image-20240415153609218.png)
654654

655655
### 练习 3.5
656656

@@ -1207,11 +1207,11 @@ fmt.Println(t) // "left foot"
12071207
s[0] = 'L' // compile error: cannot assign to s[0]
12081208
```
12091209

1210-
![image-20240416134927313](./img/ch3/image-20240416134927313.png)
1210+
![](./img/ch3/image-20240416134927313.png)
12111211

12121212
不变性意味着如果两个字符串共享相同的底层数据的话也是安全的,这使得复制任何长度的字符串代价是低廉的。同样,一个字符串s和对应的子字符串切片s[7:]的操作也可以安全地共享相同的内存,因此字符串切片操作代价也是低廉的。在这两种情况下都没有必要分配新的内存。 图3.4演示了一个字符串和两个子串共享相同的底层数据。
12131213

1214-
![img](./img/ch3/ch3-04.png)
1214+
![](./img/ch3/ch3-04.png)
12151215

12161216
### 3.5.1. 字符串面值
12171217

@@ -1261,7 +1261,7 @@ Usage:
12611261
...`
12621262
```
12631263

1264-
![image-20240416140122874](./img/ch3/image-20240416140122874.png)
1264+
![](./img/ch3/image-20240416140122874.png)
12651265

12661266
### 3.5.2. Unicode
12671267

src/develop/Java/8_Native.md

Lines changed: 81 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
category: Java
3-
tag: Java
3+
tags: Java
44
---
55

66
# 8-Native关键字
@@ -21,15 +21,91 @@ public native void nativeMethod();
2121

2222
在这个例子中,`nativeMethod()`是一个native方法,它的具体实现将在本地代码中提供。
2323

24-
为了使用native方法,必须在Java程序中加载本地库,并确保本地库中包含了所需的函数。本地库可以使用Java的JNI(Java Native Interface)来编写,并在程序运行时通过`System.loadLibrary()` 方法加载。下面是一个简单的示例:
24+
为了使用native方法,必须在Java程序中加载本地库,并确保本地库中包含了所需的函数。本地库可以使用Java的JNI(Java Native Interface)来编写,并在程序运行时通过 `System.loadLibrary()` 方法加载。下面是一个简单的示例:
25+
- **编写 Java 类 (NativeExample.java)**
2526

2627
```java
2728
public class NativeExample {
28-
static { System.loadLibrary("nativeLibrary"); }
29-
public native void nativeMethod();
30-
public static void main(String[] args) { new NativeExample().nativeMethod(); }
29+
30+
    static {
31+
        System.loadLibrary("native_lib");
32+
    }
33+
   
34+
    public native void sayHello();
35+
36+
    public static void main(String[] args) {
37+
        new NativeExample().sayHello();
38+
        System.out.println("Hello from Java!");
39+
    }
3140
}
3241
```
3342

43+
- **编译 Java 类并生成头文件**
44+
45+
使用以下命令编译 Java 类并生成 JNI 头文件:(`NativeExample.h`)
46+
```sh
47+
javac -h . NativeExample.java
48+
```
49+
这将在当前目录生成 `NativeExample.h` 头文件。
50+
51+
- **编译 C 代码为共享库**
52+
- **在 Windows 上**
53+
```sh
54+
gcc -shared -o native_lib.dll -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" native_lib.c
55+
```
56+
57+
- **在 Linux 上**
58+
59+
```sh
60+
gcc -shared -o libnative_lib.so -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" native_lib.c
61+
```
62+
63+
- **运行 Java 程序**
64+
确保共享库在 Java 的库路径上,然后运行 Java 程序。
65+
- **在 Windows 上**:
66+
```sh
67+
java -Djava.library.path=. NativeExample
68+
```
69+
70+
- **在 Linux 或 macOS 上**
71+
```sh
72+
java -Djava.library.path=. NativeExample
73+
```
74+
75+
报错如下:
76+
```sh
77+
Exception in thread "main" java.lang.UnsatisfiedLinkError: E:\MyDaily\DailyCode\JavaLearn\native\native_lib.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
78+
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
79+
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
80+
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
81+
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
82+
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315)
83+
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:287)
84+
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2427)
85+
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
86+
at java.base/java.lang.System.loadLibrary(System.java:1993)
87+
at NativeExample.<clinit>(NativeExample.java:5)
88+
```
89+
![](img/8_Native/file-20250113181713661.png)
3490
91+
Java 版本和 gcc 的版本
92+
```sh
93+
>java -version
94+
java version "17.0.12" 2024-07-16 LTS
95+
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
96+
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
97+
98+
>gcc -dumpmachine
99+
mingw32
100+
```
101+
102+
试图解决
103+
```sh
104+
> gcc -m64 -shared -o native_lib.dll -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" native_lib.c
105+
106+
native_lib.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
107+
#include <jni.h>
108+
```
109+
想把编译器改成 64 位,但是报错说 `<jni.h>` 不支持 64 位
35110
111+
#TODO : 可能需要一个 32 位的 Java 环境,有空试一下
98.9 KB
Loading

0 commit comments

Comments
 (0)