黑客,可怕吗
为了玩玩服务器,前几天,我以学生价花几十块钱,租了一个轻量级云服务器一个月,是一个ubuntu系统的docker镜像,所以性能并不高,本地跑不动的代码,放上去也一样跑不动,不过它给了个公网ip(一般除了服务器云产品都不会有公网ip,准确来说是没必要),所以有一定的价值,玩玩远程操控,做个云存储还是可以的,它有50G的内存,因为就一个月,我肯定不会把它当云盘,说到底,就是玩玩。我想说的是这样一件事,才没几天,就有这样的消息
在正式内容开始前,稍微讲讲黑客那些事。本人不是什么职业黑客,只是闲着无聊的时候喜欢逛逛像看雪之类的安全论坛,也算是道听途说而知道了一些东西,稍有不严谨也是在所难免的。
攻击对象硬件层在研究黑客行为前,我们必需有一个假设,就是硬件层的绝对安全。在OSI网络模型中,硬件层指的是物理层,数据链路层和网络层,IP协议是硬件层的顶端协议,如果使用简化后的TCP/IP模型的话,指的就是IP层和网络接口层。换成一般人能听懂的话就是,要保证给你提供网络宽带的运营商不是黑客的帮凶,因为现在网络使用的是光纤,除了宽带运营商提供的像路由器之类的网关,基本不可能进行流量劫持,嗯, ...
2022华中杯数学建模A题思路代码
本人没参加比赛,主要嫌写论文麻烦,本身代码就能表现算法和结果,并用于评分,硬是要一篇论文,不明其意义所在,语言使用python,其处理数据比较方便。matlib?不明白它的优势在哪,好像数学建模就一定要使用一样,难道只是为了方便抄代码?我瞎说哦,别当真。R?这需要专门写一篇文章,以后再说。我没有乱套随机算法,所以最后结果是稳定的,第一问得到67批次,第二问得到78713的总距离,第三问得到36923的总时间,下面都是比赛期间写的,不想再继续优化了
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271 ...
Unity资源解包
在上一节中,我们对Unity的整体架构有了一个大致的了解,也明白了我们需要的是什么,在这一节中,我们将把解包的工作落实下来。
解包的可能性在做任何逆向工程的时候,可能性的考究是必要的,对于理论上已经证明过不可能的工作,做再多分析都是无用的,当然大部分解包基本都是理论上可能的。我们所寻求的资源无非是图片、音频、视频等媒体资源,而不是代码资源(大部分情况下),两者的区别在哪呢?在于文件的“执行”上,媒体资源的执行即显示出来,代码的执行就如字面意思。对于静态编译的语言,特指C/C++,在执行上只需要文件所包含的机器指令即可,至于原来是什么样,丝毫不用关心,所以对于此类我们往往做的是反汇编而不是反编译,因为机器码和汇编指令是一一对应。但媒体资源不同,如图片,是有统一的标准的,在执行上本质都是依赖一个统一的库,如png的libpng,这些都不重要,重要的是这意味着一定要png的文件流才能执行,通常情况下,没有哪个企业会去自研一个图片格式,这是有一系列连锁反应的,自研一个图片格式还意味着要自研一个编辑器,等等,从产品周期上,这是十分低效的。正因这多方面的原因,就算是加密过的资源,为了“执行”它,在 ...
数学探索之数其三
从之前对实数的定义可知,实数是有理数序列的等价收敛类,换句话说,对于一个实数而言应当有多种不同的表现形式才对,其结果基本来自于分析,我们拿我们的老朋友π来举例。
,,,,,
在开始正式分析前,先稍微说点东西,首先表达式基本以无穷级数作为基础,目的是明了的,我们只要取部分和或部分积,就可以得到一个序列,与我们之前的讨论并不冲突,其次是目标实数π经过了某些运算,这是必需的,如果看来拉马努金(Ramanujan)的一些公式的话,就能明白其中的道理了,好像全是π的倒数,最后一个是比较特殊的逼近方式,连分数,理论比较完善,表达比较单一,没有更多需要研究的地方。最后再来说一个有理逼近的定理,来明确表明,任意实数都存在无限靠近的有理数Dirichlet逼近定理:设r和Q是任意实数,且Q>1,则存在整数p和q满足
证明:先假定Q为整数,构造Q+1个实数0,{r},{2r},…,{(Q-1)r},1其中{x}=x-[x]表示x的分数部分,均位于区间[0,1]内,划分[0,1]为Q个区间[,),u=0,1,…,Q-2,[1-,1]由抽屉原理,至少有两个数落在同一区间,故存在整 ...
认识Unity引擎
对于个人而言,在游戏开发的过程中,最缺的可能就是游戏素材了,素材的获取途径是多样的,但往往我们都是在某个游戏之中发现某个想要的素材,所以游戏解包成了我们需要的技能之一,如今大部分手游的开发引擎都是Unity(对apk拆包就可以在lib下发现libunity.so)。“知己知彼,百战不殆”,所以在拆包前,我们需要从整体上认识Unity的架构,虽然Unity对免费用户并不开源,但许多类似的思想是不会改变的,不会影响我们的理解。
从开发的视角看UnityUnityHub是一个没用的玩意,不用管它,我们重点来研究UnityEditor。Unity对我来说是一个闭源项目,所以要想研究Unity,只能从官方文档和工程目录开始研究。
官方文档Unity的文档总共有两部分,用户手册和脚本API,前者是基本属于整个UnityEditor软件的操作手册,后者则是脚本开发的API查询手册,虽然其并没有告诉我们Unity的架构,但我们可以以此作为依据了解个一二。一般的游戏引擎由软件库加头文件组成,比如我们的cocos2dx,这类引擎使用起来和一般的第三方库区别不大,但这种开发方式存在开发语言的依赖性,比如跨平 ...
数学探索之数其二
分析就是无理数的“四则运算”,级数就是无理数的“表达方式”
接下来我们将研究最常见的两个无理数e和π,并证明它们的无理性和超越性。我们引出一个问题e和π的定义是什么?当你知道这一点的时候,你就会发现接下来的证明是如此的自然。
e是无理数证明:首先e的“定义”是,使用反证法,假设e是有理数,则存在整数a和b,使得,变形得
,∀n∈N
方程的右边是一个整数,而左边为
其中显然是一个整数,而对另一部分
所以当n充分大时,即超过确定的数b时,等式的左边非整数,矛盾,所以e是无理数。证毕类似的证明可以扩充到e的幂上,但比较繁琐,所以我们将介绍另一种证明e的幂是无理数的方法引理:对于某个确定的整数n≥1,令
则有(1)函数f(x)是一个多项式,且形如,其中均为整数(2)当0<x<1时,有(3)对所有的k≥0,微分取值和均是整数。上述这些性质对于确定的函数f(x)来说,是可以直接计算来证明的,所以不进行过多的赘述,我们依据这个函数的性质来完成我们的证明定理:对任意的r∈Q{0},是无理数。证明:由于有理数的整数次幂仍然是有理数,所以我们只需要对任 ...
数学探索之数其一
数学从名字上来看,就是关于“数”的学问,不过英语看不出来就是了,所以对数有一个清晰的认识是十分重要的。在这一篇中,我们要说明两个事实,实数的完备性和复数的代数封闭性,我们先回忆一下几个简单的集合记号,自然数集N、整数集Z、有理数集Q、实数集R、代数数集A、复数集C。
实数的完备性实数分为有理数和无理数,对于有理数Q的基本特点,我们的认识是十分清楚的,比如可以将Q看成一个无限的素域,Q中的数有个十分良好的特性是,所有的数都可以用自然数来有限表示,而自然数的构造又有各种公理,如皮亚诺(Peano)公理,又或者用集合基数来构造。所以实数中的难点在于无理数,从有理数到无理数的过渡。实数的构造是接下来讨论的一个重点,我们还会揭示实数的性质要通过分析的性质来表现,分析之于实数就如四则运算之于有理数。
康托尔(Cantor)的实数构造法学过分析的都知道,无限序列是最基本又最重要的概念之一,所谓序列就是自然数到实数的函数映射,因为我们还没有定义实数,所以定义有理数序列(rₙ)为自然数到有理数的映射f(n),n∈N。定义:设(rₙ)是有理数序列,如果存在有理数l,使得对任意给定的正有理数ε,都可以找到自 ...
思维导图
思维导图这玩意,我就基本没有画过,因为我知道,画了最后也只能入库吃灰,对我而言,抄抄想想就足够了。一切要求都来自外部,现实的事情是无法摆脱的,如果不是老师强迫我们画思维导图,我都不知道低质的软件还真是多啊。付费的软件真的好吗?付费存在两种机制,买断和内购,前者流行于国外,后者广泛存于国内。白嫖本身不利于软件本身的发展,会严重将软件引入歧途,内购机制什么时候进入国内的,我不太清楚,但我只记得以前并非如此,但盗版真的太难避免了,这是国内的大环境,是没有办法的。有钱人的世界,不在我们考虑定位范畴,世界上乐于分享的人还是有许多的,开源社区绝对是一个好的选择,当然前提是你愿意去折腾。要么付钱,要么付时间,没有付出就被想奢求回报。
百度脑图百度脑图,全称kityminder-editor,是一个十分远古的Web项目,不过还跑在百度的服务器上,地址
其功能比较简陋,操作也不算复杂,拿来应付作业还是足够的。我们看一下可用的导出格式
思维导图在程序界并非什么重要的东西,没有统一的格式编码标准,但又存在一定市场,所以导致了各种不同的思维导图格式。txt和md是常见的文本格式,svg是矢量图 ...
数学探索之多项式与方程其五
学了这么多抽象理论,多少感觉有些魔幻,一点实感也没有,所以在这一篇我们的目标就是消去它们。
三次方程二次方程过于简单,四次方程过于繁琐,更高次的方程没有一般解法,所以我们选取中庸,拿三次方程来试试水。
解方程一般的三次方程如下
我们先把x³-1=0的本原根添加到基域F中去,即令F含有和,令是方程的三个根,则有分裂域,由之前的分析我们有G=Gal(E/F)≌S₃。我们有可解合成群列,依据伽罗瓦对应我们得到域列,其中B=Inv(A₃),A₃≌Gal(E/B)是一个3阶循环群,B是F的一个正规扩域,E是B的一个3次循环扩域。接下来我们要寻找根式扩域所需的数。令Δ=(α₁-α₂)(α₂-α₃)(α₃-α₁),则Δ在偶置换A₃下不变,在S₃中奇置换下变为-Δ,故Δ∈B且Δ∉F,进一步有D=Δ²∈F,计算可得D=-4r³q-27q²+18rpq-4p³+r²p²。因为[F(Δ):F]=2和[B:F]=2,所以B=F(Δ)。因为α₁,α₂,α₃不能全属于B,所以不妨设α₁∉B,同上面类似的过程,我们可以得到E=B(α₁),由于α₁不能确定,所以我们采用证明的方法来构造需要的数。
...
数学探索之多项式与方程其四
在这一篇文章中,我们将向着文章的最后目标进发,由此得到一个方程运用根式可解的判定准则。
根式可解的严格定义数学是一门严谨的学科,定义都不清不楚的情况下进行证明,理论上来说是不严谨的,不过最原始的概念还是得依靠公理的。定义1:设首一多项式f(x)∈F[x],称f(x)=0在F上运用根式可解,如果存在F的某个扩域K满足以下条件:(1)K包含了f(x)在F上的分裂域E,即F⊆E⊆K。(2)K/F有如下根式塔F=F₁⊆F₂⊆…⊆Fₙ₋₁⊆Fₙ=K其中每个,,i=1,2,…,n,即是纯扩张,我们顺便把自然数集{n₁, n₂, … , nₙ₋₁, nₙ}称为此根塔的根次数集。这个定理看似十分的繁琐,但其实是在说明,运用根式可解等价于,方程可以化为xⁿ-a=0的形式。这符合我们的基本认知,加减乘除是域本身的基本运算,我们平方的逆运算来扩张基本域,这样分裂域中就只有加减乘除和开根号了,即根是由系数的四则运算和开根号组成。在定义中,我们并没有强制要求E=K,这是因为,分裂域E一定是F的正规扩域,但K是由条件(2)所定义的纯扩域,而纯扩域不一定是正规扩域。
单位根的地位在方程与纯扩张关系中,最纯粹的莫过于 ...