-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
executable file
·269 lines (234 loc) · 35.5 KB
/
index.html
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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>xuanworld - explore unknow</title><meta name="author" content="Rytter"><meta name="copyright" content="Rytter"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="IT">
<meta property="og:type" content="website">
<meta property="og:title" content="xuanworld">
<meta property="og:url" content="https://www.xuanworld.top/index.html">
<meta property="og:site_name" content="xuanworld">
<meta property="og:description" content="IT">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://www.xuanworld.top/img/photo.jpg">
<meta property="article:author" content="Rytter">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://www.xuanworld.top/img/photo.jpg"><link rel="shortcut icon" href="/img/photo.jpg"><link rel="canonical" href="https://www.xuanworld.top/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'xuanworld',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2023-09-05 15:53:04'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 6.2.0"></head><body><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/photo.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">32</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">5</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/background2.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">xuanworld</a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">xuanworld</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/RytterMohn" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/2023/09/03/android-re-1/" title="Android逆向学习(一)vscode进行android逆向修改并重新打包"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android逆向学习(一)vscode进行android逆向修改并重新打包"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/09/03/android-re-1/" title="Android逆向学习(一)vscode进行android逆向修改并重新打包">Android逆向学习(一)vscode进行android逆向修改并重新打包</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-09-02T16:09:02.000Z" title="发表于 2023-09-03 00:09:02">2023-09-03</time></span></div><div class="content">Android逆向学习(一)vscode进行android逆向修改并重新打包写在前面其实我不知道这个文章能不能写下去,其实我已经开了很多坑但是都没填上,现在专利也发出去了,就开始填坑了,本坑的主要内容是关于android逆向,主要的教程来源来自52破解论坛的大佬课程,但是那是windows版,为喜欢用linux,所以这是一个有比较大改动的学习教程,不过我确信你在windows上也可以运行,let’s go.
一、软件准备如上文所说,我是linux用户,所以就是用的linux下相同的替代品(我感觉linux下的软件更好用)
1、模拟器我使用的模拟器叫做xdroid,为认为这个做得要比android studio的好(当然指分析起来的时候),因为很多软件用的native code是arm架构下的,而android studio下模拟器主要是x86架构,很多软件无法进行分析。当然如果安装xdroid需要关闭security boot,就是在bios里面关闭。
然后我们下载xdroid的安装包,直接./运行就好了,记得不要使用sudo ./ 会提示不可以。
我们还需要安装的软件有开发助手,NP ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2023/08/30/NDK3/" title="Android Native Code开发学习(三)对类进行操作"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(三)对类进行操作"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/08/30/NDK3/" title="Android Native Code开发学习(三)对类进行操作">Android Native Code开发学习(三)对类进行操作</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-08-30T06:51:00.000Z" title="发表于 2023-08-30 14:51:00">2023-08-30</time></span></div><div class="content">Android Native Code开发学习(三)对类进行操作本教程为native code学习笔记,希望能够帮到有需要的人
我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大
对java中的对象变量进行操作首先我们新建一个java的类
12345678public class ClassForJNI { public int a; public int b; public void add(){ System.out.println("a+b is :"+(a+b)); return; }}
我们的目标就是更改里面的a和b,并且调用这个类,就可以看到我们的输出
123456789101112131415//查询类名jclass clz_2 = env->FindClass("com/example/nativecodelearn/ClassForJNI");//查询构造函数的idjmethodID jcmid_2 = ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2023/08/30/NDK2/" title="Android Native Code开发学习(二)"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(二)"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/08/30/NDK2/" title="Android Native Code开发学习(二)">Android Native Code开发学习(二)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-08-30T06:50:58.000Z" title="发表于 2023-08-30 14:50:58">2023-08-30</time></span></div><div class="content">Android Native Code开发学习(二)NDK的开发流程本教程为native code学习笔记,希望能够帮到有需要的人
我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大
一、native code介绍native code就是在android项目中混合C++或者C语言进行开发,这样的好处是很多底层的东西需要使用C++/C的语言进行操作,而且在android开发中,使用C++和C混合开发能够大大增强逆向的难度,同时还能提升程序运行的效率,毕竟C++/C的效率不是其他语言能比得上的。
二、NDK的开发流程1.声明native方法首先我们要先在你android的java文件中进行一个声明,声明的格式是这种
1public native String stringFromJNI();
当然也可以加上参数
1public native String stringFromJNI(String str);
然后我们在android activity中调用这个函数
1234567891011@Override protected void onCreat ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2023/08/30/NDK1/" title="Android Native Code开发学习(一)环境配置"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(一)环境配置"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/08/30/NDK1/" title="Android Native Code开发学习(一)环境配置">Android Native Code开发学习(一)环境配置</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-08-30T06:50:54.000Z" title="发表于 2023-08-30 14:50:54">2023-08-30</time></span></div><div class="content">Android Native Code开发学习(一)环境配置本教程为native code学习笔记,希望能够帮到有需要的人
我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大
环境配置首先我们新建一个native C++项目
然后我们下载NDK和CMake
注意,有时候我们下载完成后还是会显示没有NDK,就是会有一个空指针错误,面对这种情况我们就需要手动指定NDK的目录,如果没有出现这种情况请忽略。下面介绍两种手动指定方法。
NDK指定方法一(好像有bug有时不能用)直接在下面的NDK位置选择,但大多数时候都是灰色的不能修改,这不知道是不是bug还是说就是这样,所以建议直接用下一种方法
NDK指定方法二直接在local.properties中修改路径,如果没有ndk.dir的话自己手动加上就可以。
然后我们重新sync一下就可以了,如果你不知道sync是啥,上图
就是这个可爱的大象,大象大象你的鼻子为什么这么长~
然后我们点一下运行
注意,可能会有问题就是让你下载最新的build tool,按它的提示下载就可以了
</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2023/08/30/mobile-ubuntu/" title="手把手教你做一个移动的系统盘"><img class="post_bg" src="/img/os.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="手把手教你做一个移动的系统盘"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/08/30/mobile-ubuntu/" title="手把手教你做一个移动的系统盘">手把手教你做一个移动的系统盘</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-08-30T06:50:38.000Z" title="发表于 2023-08-30 14:50:38">2023-08-30</time></span></div><div class="content">手把手教你做一个移动的系统盘前言这个即使很早就做过,一直觉得很方便,但是最近好像因为更新的原因导致移动的Ubuntu没有办法使用(装英伟达驱动出问题了,python包有点冲突)了,所以想着,反正上一个系统盘因为更改的东西多用起来很麻烦,本来上一个做的就不满意,之前学的不深,python冲突什么的是常有的事情,干脆直接全部格式化重新做一个。
一、准备工具虚拟机VM pro:https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html
DiskGenius:https://www.diskgenius.cn/download.php
Ubuntu 22.04的镜像文件:https://cn.ubuntu.com/download/desktop
注意:VM一定要使用pro版本,不然会寄!!!
二、硬盘分区
我们使用DiskGenius进行硬盘的分区,大小的话前两个建议不变,后面两个可以按照自己的情况搞的大一点或者小一点。
三、开始使用VM Pro进行Ubuntu的安 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2023/05/26/CP/" title="编译原理上机报告"><img class="post_bg" src="/img/cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="编译原理上机报告"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/05/26/CP/" title="编译原理上机报告">编译原理上机报告</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-05-26T13:27:46.000Z" title="发表于 2023-05-26 21:27:46">2023-05-26</time></span></div><div class="content">编译原理上机报告本次实验代码均为本人编写,未经允许禁止抄袭
一、上机题目简介
实现简单函数绘图的语句
循环绘图(for 语句进行绘图)
比例设置(scale 是比例设置)
角度旋转(rot 是旋转的角度)
坐标平移(origin)
注释
关于屏幕的坐标系
左上角为原点
x方向为从左向右
y方向为从下到上
测试语言举例
123456ORIGIn IS (300+25*(1+1), 220);rot is 0;scale is (50, 100);FOR T FROM 0 TO 2*PI STEP PI/500 DRAW(cos(T),sin(T));scale is (100, 100);FOR T FROM 0 TO 2*PI STEP PI/500 DRAW(cos(2*T),sin(T));
二、开发环境配置环境: Ubuntu 22.04 与 Windows 11
语言: Python 3.11
IDE: Pycharm 专业版
三、解决思路及方案首先我们将整个大的项目分成三个主要的方面:词法分析器,语法分析器,图形绘画器
1、词法分析器我们首先要先确定这个 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2023/03/20/GNN1/" title="图神经网络一 Graph Neural Network"><img class="post_bg" src="/img/ai.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="图神经网络一 Graph Neural Network"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/03/20/GNN1/" title="图神经网络一 Graph Neural Network">图神经网络一 Graph Neural Network</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-03-20T03:53:21.000Z" title="发表于 2023-03-20 11:53:21">2023-03-20</time></span></div><div class="content">图神经网络一 Graph Neural Network写在前面:之前我是学过一些关于神经网络机器学习的内容的,但是因为写博客太麻烦了,所以学的时候就一直没有更新博客,但是后来因为有其他事情有接近两星期没有学习AI方面内容,结果今天发现之前学的AI都忘光了,所以最近开始写博客复习一下过去的内容。
本次博客涉及的图片均来自台湾大学的课件,如有侵权请联系我。
介绍首先我们要知道图神经网络是个什么东西,我们从名字就可以看出来,Graph-Neural-Network,图-神经-网络,建立在图上的神经网络(再次之前建议先了解一下CNN,也就是卷积神经网络,建议去看吴恩达老师的机器学习的CNN课程,很简单的一个东西,10分钟就能看明白,当然你不想去看也没关系,我在下面也讲解了卷积的概念)
首先一个概念,什么是图,这个是一个数据结构的定义,我们在离散数学中也见过这个东西,就是连起来的不同节点,节点之间有一定的关系。比如我们高中经常看到的化学分子式,或者数据结构中的树。这些可以算是图。
之前我们的神经网络都是建立在一个简单维度的数据集合上,比如我上一篇神经网络入门的那一篇中关于身高和体重的数据,这个 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2023/03/20/apk-re/" title="Android反编译工具的使用(保姆级教程)"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android反编译工具的使用(保姆级教程)"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/03/20/apk-re/" title="Android反编译工具的使用(保姆级教程)">Android反编译工具的使用(保姆级教程)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-03-20T02:33:35.000Z" title="发表于 2023-03-20 10:33:35">2023-03-20</time></span></div><div class="content">Android反编译工具的使用(保姆级教程)网上关于Android反编译的文章很多,但是好多都比较杂,就打算自己写一下,顺便也能加深一下印象。
一、常用反编译文件的介绍apktoolapktool也算是一个老牌的反编译软件了,可以提取出apk中的源代码,图片,XML配置,还有语言的资源,这个软件是没有gui页面的所以需要你利用命令行进行使用,也正是这个原因,我们可以很容易的将其放到Linux服务器上,然后进行自动的反编译并进行恶意性分析的操作。
官网:https://ibotpeaches.github.io/Apktool/
dex2jar这个工具的主要功能是将dex文件转化为包含class文件的jar文件。至于dex文件,这个其实就是Android系统的可执行文件,包含应用操作的全部指令和运行时的数据,当Java编译成class文件后,我们以通过dx工具将class文件整合成一个dex文件,目的是让文件结构更加紧凑,大小更小,dex 文件可以分为3个模块,头文件、索引区、数据区(有点熟悉是不是)。
github网页:https://github.com/pxb1988/dex ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2023/03/20/proguard/" title="proguard"><img class="post_bg" src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="proguard"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/03/20/proguard/" title="proguard">proguard</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-03-20T02:33:18.000Z" title="发表于 2023-03-20 10:33:18">2023-03-20</time></span></div><div class="content">使用ProGuard进行Android代码混淆(保姆级教程)一、ProGuard的功能ProGuard是一个混淆代码的开源项目,主要是用来对java代码进行混淆,当然也就可以对java代码进行混淆,ProGuard主要有四个功能:压缩(Shrink),优化(Optimize),混淆(Obfuscate)和预检(Preveirfy)。
压缩: 就是将代码中没用的东西给删掉,比如你留下的没用的但是忘记删除的一些测试代码或者无用的类等。
优化: 对字节码进行优化删除无用的指令。
混淆: 使用cuyjno(这是我用脸在键盘上摩擦打出来的)等无意义的名称对类,字段和方法进行命名。
预检: 检查处理后代码能否正确执行。
ProGuard的这四个步骤都是可选的,我们可以通过配置脚本来决定执行其中的哪几个步骤。
二、开启ProGuard如果要开启proguard,我们首先要把下面这个东西给添加到build.gradle中(这个是:app下的build.gradle,初学者可能会搞错),一般来说,Android studio会自动帮我们给添加好了,然后我们把这个minfyEnable改为true。就像下 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2023/03/20/tempormonkey/" title="tempormonkey"><img class="post_bg" src="/img/internet.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="tempormonkey"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/03/20/tempormonkey/" title="tempormonkey">tempormonkey</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-03-20T02:31:36.000Z" title="发表于 2023-03-20 10:31:36">2023-03-20</time></span></div><div class="content">如何在本地编译器进行油猴脚本的开发学校突然提前放假了,暂时也不是很想回家,刚好花点时间沉淀一下之前学习的知识,顺便完成一下之前没有完成的一些东西,打算对前端脚本进行一些更新,突然发现我的超星ppt脚本教程是我阅读量最高的一篇文章,感觉很神奇,辛辛苦苦写的AI和Android没多少阅读量,一个随手写出来的脚本却有这么高的阅读量和下载量。
一、环境准备本人使用的是ubuntu系统,因为我的ubuntu已经安装好了nodejs,Windows配环境还是太麻烦,不过也不是不能用Windows,两者开发方法基本一样,不会有太大差别。
需要准备的东西:
vscode ,nodejs环境,chrome浏览器(必须是Chrome或Chromium内核的浏览器,不能是火狐),
二、油猴访问本地权限
将这个打开,我们就可以获取访问本地权限了
到这里就配置完成了
三、准备开发
注意这个地方是你自己的地址,链接到你的javascript脚本。
上面箭头指的是match地址,也就是那些网页可以运行这个脚本,建议改成https进行测试。
注意!本地地址前一定要加上
file:///
否则是无法load的 ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/4/#content-inner">4</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/photo.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Rytter</div><div class="author-info__description">IT</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">32</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">5</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/RytterMohn" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/2023/09/03/android-re-1/" title="Android逆向学习(一)vscode进行android逆向修改并重新打包"><img src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android逆向学习(一)vscode进行android逆向修改并重新打包"/></a><div class="content"><a class="title" href="/2023/09/03/android-re-1/" title="Android逆向学习(一)vscode进行android逆向修改并重新打包">Android逆向学习(一)vscode进行android逆向修改并重新打包</a><time datetime="2023-09-02T16:09:02.000Z" title="发表于 2023-09-03 00:09:02">2023-09-03</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2023/08/30/NDK3/" title="Android Native Code开发学习(三)对类进行操作"><img src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(三)对类进行操作"/></a><div class="content"><a class="title" href="/2023/08/30/NDK3/" title="Android Native Code开发学习(三)对类进行操作">Android Native Code开发学习(三)对类进行操作</a><time datetime="2023-08-30T06:51:00.000Z" title="发表于 2023-08-30 14:51:00">2023-08-30</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2023/08/30/NDK2/" title="Android Native Code开发学习(二)"><img src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(二)"/></a><div class="content"><a class="title" href="/2023/08/30/NDK2/" title="Android Native Code开发学习(二)">Android Native Code开发学习(二)</a><time datetime="2023-08-30T06:50:58.000Z" title="发表于 2023-08-30 14:50:58">2023-08-30</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2023/08/30/NDK1/" title="Android Native Code开发学习(一)环境配置"><img src="/img/android.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Android Native Code开发学习(一)环境配置"/></a><div class="content"><a class="title" href="/2023/08/30/NDK1/" title="Android Native Code开发学习(一)环境配置">Android Native Code开发学习(一)环境配置</a><time datetime="2023-08-30T06:50:54.000Z" title="发表于 2023-08-30 14:50:54">2023-08-30</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2023/08/30/mobile-ubuntu/" title="手把手教你做一个移动的系统盘"><img src="/img/os.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="手把手教你做一个移动的系统盘"/></a><div class="content"><a class="title" href="/2023/08/30/mobile-ubuntu/" title="手把手教你做一个移动的系统盘">手把手教你做一个移动的系统盘</a><time datetime="2023-08-30T06:50:38.000Z" title="发表于 2023-08-30 14:50:38">2023-08-30</time></div></div></div></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/AI/" style="font-size: 1.37em; color: #99a4b2">AI</a> <a href="/tags/OS/" style="font-size: 1.23em; color: #999ea6">OS</a> <a href="/tags/android/" style="font-size: 1.5em; color: #99a9bf">android</a> <a href="/tags/internet/" style="font-size: 1.37em; color: #99a4b2">internet</a> <a href="/tags/technology/" style="font-size: 1.1em; color: #999">technology</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
<i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/09/"><span class="card-archive-list-date">九月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/08/"><span class="card-archive-list-date">八月 2023</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/05/"><span class="card-archive-list-date">五月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/03/"><span class="card-archive-list-date">三月 2023</span><span class="card-archive-list-count">9</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/12/"><span class="card-archive-list-date">十二月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/09/"><span class="card-archive-list-date">九月 2022</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/08/"><span class="card-archive-list-date">八月 2022</span><span class="card-archive-list-count">5</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/07/"><span class="card-archive-list-date">七月 2022</span><span class="card-archive-list-count">3</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">32</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-09-05T07:53:04.338Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2020 - 2023 By Rytter</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js"></script><div class="js-pjax"><script>function subtitleType () {
if (true) {
window.typed = new Typed("#subtitle", {
strings: ["生活总会好起来,即使不是现在","生活的洪流让人窒息,我们却在缺氧的环境中肆意成长"],
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50
})
} else {
document.getElementById("subtitle").innerHTML = '生活总会好起来,即使不是现在'
}
}
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
}
} else {
subtitleType()
}</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>