Aurore💦
我不是Huai人的
关注数: 21
粉丝数: 164
发帖数: 5,240
关注贴吧数: 21
PBE 加密算法 1、PBE简介 PBE算法,全称password based encrytpion,基于口令的加密,该算法不是新的算法,是融合算法;主要步骤如下: 首先用户输入口令,然后根据salt,采用信息摘要算法(MD5、SHA-256等)计算一个固定长度的摘要出来; 将该固定长度的摘要转换为对称加密算法(DES、AES)要求长度的密钥key; 使用key并采用对称加密算法对数据进行加密。 PBE没有密钥的概念,PBE使用口令替代了密钥。PBE算法是信息摘要算法和对称加密算法的融合,比如PBEWithMD5AndDES是MD5和DES的结合,类似的也可以反推。 2、口令和密钥的区别 口令:一般与用户名对应,是某个用户自己编织的便于记忆的一串单词、数字、汉字字符,口令的特点容易被记忆,也容易泄露和被盗取,容易被社会工程学、暴力破解、撞库等方式获取。 密钥:是经过加密算法计算出来的,密钥一般不容易记忆,不容易被破解,而且很多时候密钥是作为算法的参数出现的,算法对于密钥长度也是有要求的,因为加密算法的作用就是利用密钥来扰乱明文顺序; NOTE:口令不能代替密钥,但是可以用信息摘要算法将口令转换为密钥; 3、eclipse中讲解PBE算法的java代码实现 1)在Mainactivity中分析代码: initSalt、encrypt、decrypt是在PBE类中定义的方法,这几个方法也是在Mainactivity中主要用到的;2、分析PBE类 SecureRandom:实例化安全随机数 generateSeed: 返回给定的种子字节数量,该数量可使用此类将自身设置为种子的生成算法来计算 PBEKeySpec:密钥材料转换 generateSecret:生成密钥小结 1、介绍PBE系列相关的算法以及实现原理。 2、在eclipse中分析了PBE算法的代码。
逆向APP查看内部源码 其实想要看app源码,只要学习了逆向所有的app的源代码都可以查看,看够那种,管饱,想看那个app就逆向哪一个app,就是这么厉害 下面是一个列子,需要的小伙伴可以看看,帮助还是很大,但是案例只是案例,看了就是一个结果,想要学习思路,还得来问我,嘻嘻 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.jianshu.com%2Fp%2F991265039648&urlrefer=53d21b01e0d2546cae0a1668adcf06f5
逆向如何引流? 引流工作室就是利用技术去做引流广告业务等。 一般为按键脚本引流工作室,需要学习安卓逆向协议来实现引流,或者是协议引流工作室需要积累技术人员。
IT培训,线上和线下哪个更好? 线上线下各有各的好,不能一概而论,只有适合自己的才是最好的 线上 优点:方便、价格低、适合想学习但是没有时间的在校学生和上班族 缺点:如果没有基础学起来比较困难,有时候遇到问题不好解决,没人解答,如果自律性不高,课程买了就是买了,不会动手去看,所以线上自律是很大一个关键点。 线下 优点:有人指导、学习氛围很强、很容易被学习氛围所带动,圈子很好 缺点:学费较贵,要有时间。 如果你没有任何压力,那么可以到线下学习,脱产好好学习,这样子进步也是最大的,系统学习,把时间利用最大化。 当然了如果你要兼顾你的现在工作,或者现在有家庭压力离不开又想学习,那就只能在线上学习了,没有其他选择其实只要一点就可以判断你适合线上还是线下,那就是你自己的 自律性高不高。
想学安卓逆向和调试 有没有什么教程? 除开吾爱、看雪、这两个论坛之外。
在网络安全中,逆向工程重要吗? 其实在有关安全问题上几乎没有不重要的,首先即使我们不用逆向工程去逆向别人,在现在的网络形势面前,别人也会用逆向工程来逆向我们,知己知彼,百战不殆。可能你花了数个月的心血去完成的软件,连一天都没有,就出现了盗版,你会不会觉得很难受,想要不被轻易盗取自己的心血,逆向是必然的。更何况我们真的不会用逆向工程去模仿别人吗?很多的高级技术更多的是被国外进行封锁了,逆向工程本质上虽然是探索性的学科,但是不同的环境也决定了不同的使用方法,想要自己足够安全,逆向是必要的。
在学习JAVA过程中,你遇到的最大的困难是什么? 最大的苦难就是全是苦难🤭,欢迎大家来发自己的想法啊
小白学习编程怎么入手?Android还是java? 问题一:小白学习编程怎么入手? 问题二:学Android好还是Java好? 解决问题一:小白学习编程怎么入手?零基础入「]学习编程,想要从事这方面的岗位工作,首先你 需要做的一个事情就是确定好自己想要学习的编程语言,再根据自己所选择的编程语言,制定相应 的学习计划和学习路线,这是你首要做的事情。 解决问题二:学Android好还是ava好?有的人说Java前景好,也有的人说Android前景好,这就 给很多想要学习编程开发的朋友们,造成了选择上的困扰。那么,2020年学安卓好还是Java好呢? 我们一起来看一下。
什么是hook技术? Hook翻译过来叫钩子,当ap运行时,我们想要破解某个功能,由于受防逆向的限制时,通过Hook就可以绕过限制达到逆向的目的 常用的Hook框架有哪些? java层使用: magisk,太极、xposed. frida so层使用: frida、 idba、 Substrate 常用的Hook方法有哪些? so层:inline- Hook,异常hook,导入表hook,导出表hook
什么是app保护 简单来说就是,提高app安全性,增加app逆向防破解难度。 一般分为内部保护和外部保护 什么是内部保护 1.Java代码混淆:将我们看得懂的符号变成我们看不懂的符号 2.资源文件名称混淆:将我们看的懂的文件命名改成我们看不懂随机字母或者符号 3.对抗市面上主流的逆向分析工具,比如apktool(这是一种逆向反编译工具),jadx、jeb(阅读Java代码的工具),ida(分析so文件的工具) 4.so层ollvm混淆(将正常的程序逻辑打乱),这种保护虽然改变了内部结构,但不会改变app的正常运行 5.文件结构变形:比如dex文件,elf文件(app的重要组成部分) 6.本地数据加密,网络通讯数据加密 7.防逆向调试:检测主流的调试软件比如:ida工具、gdb工具,Friday工具 外部保护 1.bex文件加壳:对内部的dex文件加一层保护的代码,对应市场上常见的有一代壳到四代壳。 2.so文件加壳:upx压缩壳,变种壳 3.自定义linker加载so文件。
去哪里找JAVA项目练手? GitHub 和 CSDN上面有很多,还有没有跟多这样的平台。
去哪里找JAVA项目练手? GitHub上面就有很多可以练习的项目,可以说是无所不有,但是这个很多新手都不会用。 只要你会搜索,会用,对你将会有很大的提升。
安卓逆向怎么赚钱 写外挂、找固件漏洞、破解功能实现原理、破解重要数据等等。
APP是如何被破解的? 简单来说APP编译后会被翻译成字节码,然后Java虚拟机来根据字节码来执行相应的动作,动作组合起来就是APP的功能。破解,有两种方式。 1,更改字节码来更改APP功能,就被破解了。 2,根据字节码还原到源代码,然后得到APP程序功能,思路,对它的注册算法进行逆向推算, 得到注册机。
常见加密算法——SHA系列算法 ## 一:SHA算法简单概要 SHA (Security Hash Algorithm) 是美国的 NIST 和 NSA 设计的一种标准的 Hash 算法,SHA 用于数字签名的标准算法的 DSS 中,也是安全性很高的一种 Hash 算法。 ## 二:SHA系列算法介绍 **1)SHA-1** SHA-1 算法的输入消息长度小于 264bit,最终输出的结果值是 160 Bits,SHA-1 与 MD4 相比较而言,主要增加了扩展变换,将前一轮的输出也加到了下一轮,这样增加了雪崩效应,而且由于其 160 Bits 的输出,对穷举攻击更具有抵抗性。 大致实现过程:将消息摘要转换成位字符串,对转换后的位字符串进行补位操作,附加长度值并且初始化缓存,然后计算消息摘要。 **2)SHA-256 算法**SHA-256 算法输入报文的最大长度不超过 264 Bits,输入按 512 Bits 分组进行处理,产生的输出是一个 256 Bits 的报文摘要。 **算法处理步骤:** 1、附加填充位 对报文进行填充使报文长度与 448 模 512 同余(长度 = 448 mod 512), 填充的比特数范围是 1 到 512,填充比特串的最高位为 1,其余位为 0。 就是先在报文后面加一个 1,再加很多个 0,直到长度满足 mod 512=448。为什么是 448?因为 448+64=512。第二步会加上一个 64 位的原始报文的长度信息。 2、附加长度值 将用 64 位表示的初始报文(填充前)的位长度附加在步骤 1 的结果后(低位字节优先)。 3. 初始化缓存 使用一个 256 位的缓存来存放该散列函数的中间及最终结果。它可以表示为 8 个 32 位的寄存器(A, B, C, D, E, F, G, H) 4.处理 512 位报文分组序列 该算法使用了六种基本逻辑函数,由 64 步迭代运算组成。每步都以 256 位缓存值 ABCDEFGH 为输入,然后更新缓存内容。每步使用一个 32 位常数值 Kt 和一个 32 位 Wt。 5. 结果输出 所有的 512 位分组处理完毕后,对于 SHA-256 算法最后一个分组产生的输出便是 256 位的报文摘要。 补充:(这里的具体实现设计到一些数学知识,顾具体细节不做讨论,同学们只需要明白大致过程即可)** 3)SHA-2的其他衍生算法 包括SHA-224、SHA-256、SHA-384、SHA-512,这些版本共同构成了SHA大家庭。 SHA-224:SHA-256的“阉割版”,可以生成长度224bit的信息摘要。 SHA-512:可以生成长度512bit的信息摘要。 SHA-384:SHA-512的“阉割版”,可以生成长度384bit的信息摘要。 SHA家族的最新成员SHA-3已经于2015年问世。关于SHA-3的细节,有兴趣的小伙伴们可以查询资料进一步学习。 ## 三:在Eclipse中分析SHA代码并且演示效果 1)主类MainActivity 通过调用自定义的SHA算法把要加密的数据传进去,然后使用自定义的byteArr2HexStr方法进行遍历拼接;2)SHA类 使用getInstance方法获取不同的算法,每隔算法的大致实现都是一样的,唯一不同的就是使用getInstance获取到的算法不一样;代码都一样,唯一的区别是使用getInstnce获取到的算法不一样; 小结: 1、介绍SHA系列相关的算法以及实现原理。 2、分析SHA算法代码以及演示运行效果。
JEB动态调试 调试逆向分为动态分析技术和静态分析技术。静态分析技术是指破解者利用反汇编工具将二进制的可执行文件翻译成汇编代码,通过对代码的分析来破解软件;而动态调试则是指破解者利用调试器跟踪软件的运行,寻求破解的途径。 动态调试有两种方法:Jeb调试和AndroidStudio+smalidea插件动态调试。 JEB是一款功能强大的为安全专业人士设计的Android、应用程序反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。 有需要详细版本的小伙伴可以留言,我好更新一波
非计算机专业,安卓自学的步骤应该是怎样的?
现在做软件逆向的人多吗? 是自己在家做项目接单子还是在公司上班呢
smali代码在逆向zpp中有什么用?具体是用来干什么的 学习Smali有一下几点好处: 1、修改Smali代码 2、调试Smali代码 3、增加** 很多人都停留在静态分析阶段,也就是说只会用JEB啊,AK之类的工具瞎搞搞,实际上调试也是逆 向中很重要的一部分,我-般用IDEA+Smali调试, 非常方便,吾爱有很多资料。总之,我没有听 说过谁能用反编译后算出来的源码进行调试的。 我说- -下修改代码吧,这个也必须基于Smali,想破解游戏内购就必须会这玩意,我也没有听说过谁 改改Java代码就修改了游戏逻辑~ 另外,Smali汇编其实- -1很简单的汇编,比起CPU的原生汇编来说简单太多了,只要有自信,几 个小时入「是没有问题的! 学习方法:翻阅文档!看代码! 我认为唯一的缺点: -句代码中很大部分都是包名,显得很臃肿。
业余学什么技能,能用来谋生? 其实我觉得现在这个互联玩时代,可以考虑考虑it行业和网络安全行业,都是现在比较吃香的行业,且前景也非常好。 这个行业最基本的就是一台电脑,所以成本不是很高。 其次我推荐的技术就是“安卓逆向”安卓逆向是属于网络安全里面的移动安全,在这个人人离不开手机的时代,这是一个很大的突破口,在以前移动端的啊安全没有受到太大的重视,可是随着移动市场的扩大,那么移动端的安全将会越来越来受到重视。 所以现在进入移动端市场是早的一批人,处于吃肉阶段 如果你说我暂时还不去上班,那也没有关系的,这个技能学好了, 完全是可以自己接单的,而且基础很扎实,对任何技术都是有好处的。
有什么一技之长适合自学,并且不需要太多的金钱支持,同时可以发 其实我觉得现在这个互联玩时代,可以考虑考虑it行业和网络安全行业,都是现在比较吃香的行业,且前景也非常好。 在这个行业最基本的就是一台电脑,所以成本不大。 其次我推荐的技术就是“安卓逆向”安卓逆向是属于网络安全里面的移动安全,在这个人人离不开手机的时代,这是一个很大的突破口,在以前移动端的啊安全没有受到太大的重视,可是随着移动市场的扩大,那么移动端的安全将会越来越来受到重视。 所以现在进入移动端市场是早的一批人,处于吃肉阶段如果你说我暂时还不去上班,那也没有关系的,这个技能学好了, 完全是可以自己接单的,而且基础很扎实,对任何技术都是有好处的。
新手如何学习网络安全? 第一步精通一门数据库语言,这是最基础的 其次。。。 有需要在更
数字签名算法 一:数字签名简介 什么是数字签名?带有密钥(公钥,私钥)的消息摘要算法,用于验证数据完整性,认证数据来源,以及抗否认。通俗来讲就是证明某个消息或者文件是本人发出/认同的,这个的话用于的面就比较多了。比如电子合同,银行签约,电子授权等等。所以他的安全性是我们必须要考虑的。数字签名中常用的签名算法有RSA、DSA、ECDSA等。 二:数字签名的基本过程 基本过程如下: (1)发送方生成非对称加密算法的公钥和私钥对,并公布其公钥和签名算法(例如sha256WithRSAEncryption); (2)发送方对发送的消息先计算其数字摘要,然后使用私钥对摘要进行加密,生成数字签名; (3)接收方在接收到声称来自XXX的消息时,先去查询XXX的公布的公钥和签名算法; (4)接收方使用公钥对数字签名解密并与计算出的数字摘要进行比对,如果比对一致,那么消息来自于XXX并且未被篡改。 上述过程的安全前提基于以下两点: ①发送方的签名算法无法被破解,且私钥未发生泄露 ②接收方查询的公钥以及签名算法属实 三:在eclipse中分析DSA签名算法 (1)在主类Mainactivity中分析 分析这几个自定义方法: getPublicKey(keyMap);//获取公钥 getPrivateKey(keyMap);//获取私钥 be.encode(publicKey));//公钥加密 be.encode(privateKey));//私钥加密 DSA.sign(data.getBytes(), privateKey);//讲私钥进行签名 DSA.verify(data.getBytes(), publicKey, sign)+"");//进行验证(2)在自定义类DSA中分析 几个重要的方法 generateKeyPair:生成密钥对 getPublic获取公钥 getPrivate:获取私钥 X509EncodedKeySpec:根据给定的编码密钥创建一个新的 X509EncodedKeySpec小结 1、介绍数字签名系列相关的知识以及实现原理。 2、在eclipse中分析了DSA签名算法的代码。
移动端的程序员怎么拓展自己的技术比较好? 首先,拓展技术肯定是要工作中用得到的技术,不然学习了工作中用不到很快就会遗忘,所以一定是要和工作相关的 拓展技术方向:作为移动端程序员,如果要拓宽技术栈,不妨看看自己手头技术栈相关的技术,比如看看前 端技术、混合开发技术,比如React Native、Flutter、 JavaScript、 Css等等,这些技术一来你工作 中可以用得上,二来以移动端为内核这些技术也可以拓宽你的技术视野, 这样子你的技术栈就以移 动端为内核一层层往外拓展,再加上工作实践,肯定会越来越强的。
X86架构和ARM架构,各自有什么优点和缺点? 嵌入式X86和ARM优缺点对比 X86架构是使用复杂指令集CISC,X86 CISC是一种为了便于编程和提高记忆体访问效率的芯片设计体系,包括两大主要特点:一是使用微代码,指令集可以直接在微代码记忆体里执行;二是拥有庞大的指令集,拥有包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的多种指令类型。X86架构的优势是能够有效缩短新指令的微代码设计时间,允许实现CISC体系机器的向上兼容,新的系统可以使用一个包含早期系统的指令集合。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。ARM架构相较复杂指令集CISC而言,以RISC为架构体系的ARM指令集的指令格式统一、种类少、寻址方式少,简单的指令意味着相应硬件线路可以尽量做到最佳化,从而提高执行速率。ARM架构的优势是体积小、低功耗、低成本、高性能,支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件,大量使用寄存器,并且大多数数据操作都在寄存器中完成,指令执行速度更快,寻址方式灵活简单,执行效率高,指令长度固定,可以通过多流水线方式提高处理效率 X86架构缺点:X86指令集只有8个通用寄存器,这就意味着CPU大部分时间在访问存储器内的数据,将影响整个系统的执行速度;解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂;X86指令集的寻址范围小,大大约束了用户的需求;X86 CISC相对来说结构复杂,很难将CISC全部硬件集成在一颗芯片上。 ARM缺点是:在性能上接近X86,频率就要比X86处理器高,这就会造成高能耗。 文章来源于csdn:femrice
Jeb调试ctf 链接:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F1LcjeTy6nkRx-G6OcB0S_NQ&urlrefer=973affeb280b5084186e634113603ef0 提取码:63ic 复制这段内容后打开百度网盘手机App,操作更方便哦
PC游戏容易被破解的本质原因是什么? 主机一旦破解了之后,游戏的破解也很快 3ds做了烧录卡出来之后,破解就没遇到特别大的阻碍,很多游戏基本有卡就能破解 但是3ds在做出烧录卡之前,卡带的数据根本都无法导出。破解也无从谈起 pc相对于主机而言,你根本不需要管硬件IO的东西,只需要专注软件就行了 市面上几乎所有的游戏主机,最难的部分也就是硬件的破解。
安卓开发没人要了? 最近在知乎上看见一个话题就是安卓开发,没有前途了,面临换工作转行,那么安卓开发人员适合学习什么技术呢?
常见加密算法之Base64编码算法 一:Base64编码的原理 (1)Base64是什么 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。 (2)Base64的使用场所 Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数 据。包括MIME的email、在XML中存储复杂数据。 (3)Base64的原理 Base64可以将ASCII字符串或者是二进制编码成只包含A—Z,a—z,0—9,+,/ 这64个字符( 26个大写字母,26个小写字母,10个数字,1个+,一个 / 刚好64个字符)。这64个字符用6个bit位就可以全部表示出来,一个字节有8个bit 位,那么还剩下两个bit位,这两个bit位用0来补充。其实,一个Base64字符仍然是8个bit位,但是有效部分只有右边的6个 bit,左边两个永远是0。 Base64的编码规则是将3个8位字节(3×8=24位)编码成4个6位的字节(4×6=24位),之后在每个6位字节前面,补充两个0,形成4个8位字节的形式,那么取值范围就变成了0~63。又因为2的6次方等于64,所以每6个位组成一个单元。 二:Eclipse中Base64算法实现 首先新建一个工程,添加主程序使用jdk中给我们提供的包,直接输入Base64,会给我们导包:使用里面的方法encode,然后对1101字符进行编码,并且输出:继续使用decode方法对编码的结果进行解码输出:注意,这里decode的返回值是byte[]字节数组,所以需要new String进行类型转换。 总结 1、介绍base64的编码原理。 2、演示base64编码和解码的例子。
脱壳方法总结 一、单步跟踪法 脱壳的方法有很多,先来讲脱壳方法中最基础的单步跟踪法。单步跟踪法就是利用OD的单条指令执行功能,从壳的入口一直执行到OEP,最终通过这个OEP将原程序dump出来。然当,在单步跟踪的时候需要跳过一些不能执行到的指令。 使用单步跟踪法追踪OEP的常见步骤: 1、用OD载入待脱壳文件,如果出现压缩提示,选择“不分析代码”; 2、向下单步跟踪,实现向下的跳转; 3、遇到程序往上跳转的时候(包括循环),在回跳的下一句代码上单击并按键盘上的“F4”键跳过回跳指令; 4、OD中的绿色线条表示跳转没有实理,不必理会,红色线条表示跳转已经实现; 5、如果刚载入程序的时候,在附近有一个CALL指令,那么就要按键盘上的“F7”键跟进这个CALL内,不然程序很容易运行起来; 6、在跟踪的时候,如果执行某个CALL指令后就运行,一定要按键盘上的“F7”键进入这个CALL之内再单步跟踪; 7、遇到在popad指令下的远转移指令时,要格处注意,因为这个远转移指令的目的地很可能就是OEP。 二、ESP定律法 ESP定律法是脱壳的利器,是国外友人发现的。有了ESP定律,可以方便我们脱掉大多数的压缩壳。可谓是本世纪破解界中最伟大的发现之一。这里只简单的看一下狭义ESP定律的原理。 使用ESP定律追踪OEP的常见步骤: 1、将待脱壳程序载入到OD中,开始就按键盘上的“F8”键单步跟踪一步,这时如果看到OD右边的寄存器窗口中的ESP寄存器的值有没有变为红色,如果发现ESP寄存器的值变为红色,执行第2步; 2、在OD的命令行窗口中执行命令hrXXXXXXXX,xxxxxxxx就是变为红色的ESP寄存器的值,在输入命令之后,一定不要忘记按键盘上的回车键; 3、按键盘上的“F9”键让程序运行起来; 4、使用单步跟踪的方法跟踪到OEP即可。 三、二次断点法 二次断点是有技巧的下两个断点,在两个断点之后就可以很轻松的找到OEP。 使用二次断点法追踪OEP的常见步骤: 1、将待脱壳程序载入到OD中,单击OD的“选项”菜单下的“调试设置”命令,在弹出的“调试选项”对话框中切换到“异常”选项卡,勾选该选项卡下的所有复选框,也就是忽略所有异常; 2、按键盘上的“ALT+M”组合键打开OD的内存窗口; 3、在OD的内存窗口中找到“.rsrc”区段,单击该区段后按键盘上的“F2”键在该区段上下一断点; 4、按“Shift+F9”让程序运行到断点心处,而后再次打开OD的内存窗口,这次在“.rsrc”区段上面的“.code”区段(有的时候就是“.text”)上下一个断点; 5、按“shift+F9”让程序运行到第二次下的断点处,然后单步跟踪既可以来到OEP。 四、末次异常法 在脱壳方法中,末次异常法又被称为最后一次异常法,这是最基础的脱壳技术之一。末次异常法脱壳很是简单,但就是这简单的脱壳方法可以挑掉曾经风靡一时的强壳。 使用末次异常法追踪OEP的常见步骤: 1、将待脱壳程序载入到OD中,单击OD的“选项”菜单,在弹出的菜单中单击“调试设置”命令,在随后弹出的“调试选项”对话框中切换到“异常”选项卡,清除该选项卡下所有复选框,也就是不忽略任何异常; 2、连续按键盘上的“Shift+F9”组合键让程序运行起来,记录按键的次数X; 3、回到OD中,按键盘上的“Ctrl+F2”组合键重新载入程序,按X-1次“Shift+F9”组合键; 4、在OD右下角窗口中找到“SE句柄”或是“SE处理程序”,记录此处的内存地址; 5、在OD的反汇编窗口中跟随到上一步记录下的内存地址,并在此内存地址处下一个断点; 6、按键盘上的“Shift+F9”组合键让程序运行到上一步下的断点处,按键盘上的“F2”键取消此处的断点; 7、使用单步跟踪法追踪到OEP。 五、模拟跟踪法 在这章中讲到的众多脱壳方法中,我们首先讲了单步跟踪法脱壳,因为单步跟踪脱壳法是脱壳技术中最基础的方法,在后面其它的一些脱壳方法中总会或多或少的配合单步跟踪法才能顺利完成脱壳工作。便是始终是一次次的按“F8”键来单步跟踪程序,偶尔遇到回跳就跳过执行,这样机械性的操作很是烦人,那么能不能让机器来代替人力,让工具帮我们单步跟踪呢?答案是肯定的,这也就是这节讲的内容——模拟跟踪法。模拟脱壳法就是模拟单步跟踪来进行查找OEP。 模拟跟踪法的常见步骤: 1、将待脱壳程序载入OD中,先简单的跟踪一下程序,看看有没有SEH暗桩; 2、按键盘上的“ALT+F9”打开OD的内存窗口,找到“SFX,输入表,资源”的行,并记录此行的内存地址; 3、在OD的命令行窗口执行命令“tc eip<上一步中记录下的地址”,命令执行后就会跟踪到OEP。 六、SFX自动脱壳法 在上一节,我们使用模拟跟踪法代替手动单步跟踪法进行脱壳。在OD中,不但可以利用模拟跟踪来代替单步跟踪进行脱壳,从而节省劳动力,还有一种SFX自动脱壳的方法也可以节省劳动力,并能快速有效的将程序的壳脱掉。 使用SFX自动脱壳法脱壳的常见步骤: 1、将OD设置为忽略所有异常; 2、在OD的“调试选项”对话框的“SFX”选项卡中选择“字节模式跟踪实际入口”选项并确定; 3、将待脱壳程序载入OD,待程序载入完成后,会直接停在OEP处。 七、出口标志法 前面几个脱壳方法中有一个共同点,就是在单步跟踪到popad指令后面不远处的jmp指令的时候,就可以大胆的判断这个jmp指令的目的地址就是OEP。原因很简单,popad指令用于将壳运行之前保存的环境恢复,使原程序能正常运行。有些壳的popad指令很少,我们就可以查看被这种壳加壳的程序的所有popad指令,找到后面存在jmp指令的popad指令,然后来到其后的jmp指令的目的地址,这很可能就是OEP,然后就可以进行dump脱壳了。 使用出口标志法脱壳的常见步骤: 1、将待脱壳程序载入OD中,在OD的反汇编客人口中单击鼠标右键,在弹出的右键菜单中单击“查找”→“所有命令”,在弹出的输入框中输入“popad”并按“查找”按钮; 2、逐一尝试跟踪查找到的所有“popad”指令,最终达到程序的OEP
APP加固原理 对App进行加固,可以有效防止移动应用被破解、盗版、二次打包、注入、反编译等,保障程序的安全性、稳定性。对于金融类App,尤其重要。 对App dex进行加固的基本步骤如下: 1. 从App原始apk文件里获取到原始dex文件 2. 对原始dex文件进行加密,并将加密后的dex文件和相关的存放到assert目录里 3. 用脱壳dex文件替换原始apk文件里的dex文件;脱壳dex文件的作用主要有两个,一个是解密加密后的dex文件;二是基于dexclassloader动态加载解密后的dex文件 4. 因为原始apk文件已经被修改,所以需要删除原始apk的签名信息,即删除META-INF目录下的.RSA、.SF 和MANIFEST.MF文件 5. 生成加固后的apk文件 6. 对加固后的apk文件进行签名,apk加固完成。 原理分析: 1.为什么要对原始dex进行加密,同时用脱壳dex文件替换原始dex文件?大部分的apk反编译工具(dex2jar、apktools、jui等)都是对dex文件进行反编译,将dex文件反编译成smail,然后再转化成class文件进行阅读和修改。用脱壳dex替换原始dex文件之后,用上面的反编译工具反编译apk文件,只能看到脱壳程序的class文件,看不到apk本身的class文件。对dex文件进行加密,这样即使第三方拿到了dex文件,以为无法解密,也就无法对其进行解析和分析。 2.怎么确保apk功能正常运行?加固后的apk启动之后,脱壳dex文件会对加密后的dex文件进行解密,然后机遇dexclassload动态加载解密后的dex文件。从用户的角度,加固前后App的功能和体验基本是一样的。 3.dex加固主要是防止被静态反编译,进而获取源码并修改 延伸: 道高一尺,魔高一丈。为了更好的对app进行防护,有了跟多更深的加固功能,防dump、防调试、特定代码加固和so加固等。
ARM 和 x86 架构相比,各自的发展前景怎么样? ARM 和 x86 架构相比,各自的发展前景怎么样?
为什么x86比arm快? 很疑惑,x86是cics指令集,arm是rics指令集,简单指令集难道不应该更快速吗?
零基础学习安卓逆向 求学习路线,或者相关的群和公众号,都可以,学习安卓逆向的都行
Android 开发工程师想转行,有什么建议? 其实转行说着简单,要从自己熟悉的一个领域跳出来,去适应一个自己全面不明白的行业,是要付出代价的, 比如 时间、薪资、年龄、经验、和比你小的年轻人一起竞争。 这就是转行的缺点,所以不建议轻易换行业。 还有就是 做一个斜杆青年,找一个副业嘛,也是可以的, 其次就是如果实在是想转行,可以选择和现在技术挂钩的,又能提升自己技术的工作,安卓开发,跳槽可以选择“安卓逆向”题主也说了,不喜欢编程,安卓就是极少的编程,不需要自己去编程,基本都是分析代码。 而且安卓逆向就是以安卓开发为基础的技术在安卓开发上面衍生的技术,于你是没有任何坏处的,现在13k学习安卓逆向后薪资大概在20k左右,而且安卓逆向是越老越吃香,不用担心达到35岁面临辞职的风险。 当然了还有很多其他行业可以选择,安卓逆向只是一个方面,如何选择都是听自己的意愿。
Android 开发工程师想转行,有什么建议? 主要是不想编程了
安卓逆向和有游戏基础是不是一样的? 安卓逆向和游戏逆向在基础部分是不是一样的呢,都是属于逆向,只有最后面核心部分不一样吧,前面应该都是一样的。
做Android开发的,想转行,如何选择呢? 转行是一个很广泛的概念,而以下回复的概念,更多是转岗: 移动开发在如今看来,确实已经到了红利期的末端,大浪淘沙之后,饱和的市场就让从事 Android 开发的从业者,在选择就业时面临更大的竞争,这时候对于 Android 开发者而言,大致面试以下选择: 一 、安卓逆向 二、Java后端 三、大前端 这目前是和专业最合理且和技术有挂钩的转型途径,特别是安卓逆向,和开发简直就是搭档。
为什么JAVA会比C语言使用的多? Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO) 成分在里面, 而C是完全面向过程的,C的高级版本C++、C#支持面向对象。 这可能就是最大的区别,其他的由小伙伴们来补充啊
Java 培训四个月能学会吗? 首先想去参加培训的同学一定要有一个明确的想法,就是参加培训的目的是为了找到工作,养活自己,先入门。 很多人对培训的认知一开始就是错的,甚至有同学觉得自己培训四个月(或者半年)能进阿里巴巴这样的大厂,我只能说自信是好事。 培训之前,要清楚的认识到,我是一个小白,我去培训是为了获得入门的资格,大部分技术我只需要追求会用,能过面试就行。进大厂,了解各种技术的原理,甚至补习计算机基础知识,算法知识等都可以在我工作以后慢慢的学,而不是在培训的过程中东一榔头,西一棒子的,路走偏了。科班出身的同学四年时间都不敢说完全掌握计算机原理,算法这些东西,如果培训的时候还去想着学习这些,那四个月肯定是不够的。
学习安卓逆向需要哪些前置知识,未来路线? 要是有Java基础和正向开发这是最好的,上手比较快 未来的学习路线,可以私聊我,我发你一份学习思维导图。
反调试实战案列分享 由于文章内容比较多,排版很麻烦,有需要私聊我,直接发文档,干活慢慢、不止一个多个实战案列分享
apk保护策略有那些? Java代码混淆、模拟器检测、签名验证、文件检测、资源文件混淆 大范围有这些,这些里面还有很多小知识点,有需要的可以联系我,或者加群咨询
(分享)饿了麽APP逆向及爬虫实现详参 一、前言 今天主要以饿了麽为例,讲解一下APP逆向的大致流程,以及遇到问题的处理办法。二、概述 APP逆向的目的是为了了解APP本身的运行逻辑,进行修改或进行还原。涉及到的技术和工具,见下图。对于抓包我就不详细讲了,不清楚的看一下我之前的文章。 HTTPS抓包与手机抓包,看这一篇就够了mp.weixin.qq.comHTTPS就不能抓包了?开什么玩笑!mp.weixin.qq.com好了,下面我们干正事,讲饿了麽。 三、需求 通过还原APP接口,获取附近商家。 但因为饿了么查看商家必须登录,故需要先逆向登录接口。 四、抓饿了麽的包 打开PacketCapture,选择饿了麽,打开饿了麽APP。这是为什么?断网了?这种情况主要是因为抓包引起的,APP本身做了HTTPS证书校验,简单的可以通过插件解决,办法参见以前的文章。 Xposed+JustTrustMe关闭SSL证书验证mp.weixin.qq.com好了解决了抓包问题,那就能找到登陆的接口了。 通过抓包,得到登录步骤为: 请求发送短信 需要图形验证码,请求图形验证码 带验证码请求发送短信 带短信验证码登录(登陆完成拿到cookie) 获取附近商家 每一步的接口如下: URL:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Frestapi.ele.me%2Feus%2Flogin%2Fmobile_send_code&urlrefer=75cd71bd8714c7813c664c5bc2ecebc1 URL: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Frestapi.ele.me%2Feus%2Fv4%2Fcaptchas%3Fcaptcha_str%3D&urlrefer=7af2726aa499154e9f8d6ff42842822a{手机号码} URL:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Frestapi.ele.me%2Feus%2Flogin%2Fmobile_send_code&urlrefer=75cd71bd8714c7813c664c5bc2ecebc1 URL:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Frestapi.ele.me%2Feus%2Flogin%2Flogin_by_mobile&urlrefer=a67a337a82c3cccbecef865c63acf676 URL:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Frestapi.ele.me%2Fshopping%2Fv3%2Frestaurants%3Fextras&urlrefer=5cdef5f01cfcb09cb7e967fa96667800[]=identification&extras[]=coupon&latitude=32.29290046542883&longitude=110.04603732377291&city_id=3&rank_id=b1969c73a19b4dc68b31628ea85d8eaf&network_operator=&network=WIFI&order_by=5&extra_filters=home&os=Android%2F6.0.1&deivce=Nexus%206P&weather_code=PARTLY_CLOUDY_DAY&offset=0&limit=20 直接看参考答案的感觉怎么样?五、参数分析 对于抓包的相关参数(自己看报文就能知道,我没有写header参数和url参数),中间很多是我们一眼就能看出来的比如时间戳、机型、坐标、固定值等,需要逆向的主要有以下几个。 x-eleme-requestid、x-deviceinfo、deadpool相关三个参数六、逆向分析 参数x-eleme-requestid 在jadx中打开饿了麽APP,搜索关键字x-eleme-requestid看到四个,不多。 按道理来说,应该先看第四个,但是后来并没有找到a的生成位置。好我们看一下二、三。(OS:“你为啥不看一”)看到a是个static变量,那就得看一下谁调用他了,右键find usage。会心一笑。手到擒来。解释一下。点进去看一下。我个憨憨!!!好了,不要在意这些细节。我们点进去这个a()看看。清清楚楚,国际通用的算法UUID去掉短杠后加上竖杠再加时间戳。 参数x-deviceinfo打眼一看,这是啥,base64啊!对x-deviceinfo进行base64解密,可得到:均是设备基本信息,按照格式生成即可,注意要和外部其他设备基本信息保持一致。 deadpool相关三个参数 一共三个参数,分别为:搜索deadpoolcontent。又是hashmap.put,为什么我们要对他敏感,因为它和我们的目标关键字呆在一起的时候,很可能就是给header里构造参数的啊。我们点开第二个看一眼。继续找这个sneer函数。(我总觉得他这个函数叫这个名字是故意鄙视我的。)好了,在libuiseris.so里面,这就麻烦了,要还原这个算法有三种办法。 硬刚。逆向so。我后来看了下,so有反调试,so里面又调了java层的函数,还原比较麻烦一些。 利用。hook这个sneer函数,找到他的方法地址,在你的代码需要的时候,发请求到手机里,手机进行调用执行,计算完以后返回给外部。 虚拟。虚拟环境执行so中的sneer方法,可参见github上的Unicorn这个项目。 我用的是第二个办法,在手机里面起了HTTP服务,接受请求计算后返回给外部。 但是! FPX和G2的比赛要开了,今天不继续写了,下次再写个续,讲一下hook调用这个事儿吧。 FPX加油。内容来源于:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fzhuanlan.zhihu.com%2Fp%2F91150834&urlrefer=858988ad8b01cc8c446500527b8fdcf6 侵权删
app里面的算法要如何获取 像抖音,今日头条这些app算法想要获取,要做些什么呢,哪一项技术才能实现呢
这么多编程语言,对于小班应该先学习哪一个 目前是小白一个,想进入it行业,应该如何选择,那一些比较简单
学习安卓逆向难不难 据学要学习的东西很多,上手难不难啊,还有就是安卓逆向前景大不大啊,有大佬指点一下嘛
python入手安卓逆向应该从那反面开始学习 是从最基础的慢慢入手嘛 有一点基础
网络安全导图
Java项目源码为什么要做代码混淆 代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。 代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到反向工程的威胁。 代码混淆的主要的方法有: 将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。 重写代码中的部分逻辑,将其变成功能上等价但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。 打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。 代码混淆器也会带来一些问题。主要的问题包括: 被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。 对于支持反射的语言,代码混淆有可能与反射发生冲突。 代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。
资源混淆的目的是? 代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。 代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到反向工程的威胁。
怎么样去理解逆向破解流程呢? 简单来说就逆向一个软件的过程。 在逆向的过程中,会有各种各样的收获 我的理解就是在逆向中得到自己想要的东西,破解各种各样的难题,增长自己技能, 当然破解的最后都是为了,得到某一样东西算法、协议、等等。
。。
脱壳思路,教程,免费资源 想了解脱壳原理和学习的,请添加下面群聊,都是免费的
想学习破解,来破解一一些小游戏 有咩有大佬啊,想白嫖一些资料
如何提升自己的 Java 基础? 如果需要Java学习资料,我这儿有全套资料,需要的小伙伴们可以添加微信领取
ARM处理器寻址方式 寻址的概述 寻址是指寻找寄存器里存放的数据或者是地址里存放的数据并加以使用。 寻址有以下八种方式: 1.立即寻址; 2.寄存器寻址; 3.寄存器移位寻址; 4.寄存器间接寻址; 5.基质寻址; 6.多寄存器寻址; 7.堆栈寻址; 8.相对寻址。 一:立即寻址 立即寻址指令中的操作码,字段后面的地址码部分,即是操作数本身,也就是说,数据包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。立即寻址,具体操作流程如下图所示。二:寄存器寻址 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作,如下图所示。三:寄存器移位寻址 寄存器移位寻址是ARM指令集中特有的寻址方式,如下图所示。 当第2个操作数是寄存器移位寻址方式时,第2个寄存器操作数在与第1个操作数运算之前,先进行移位操作,如下图所示。四: 寄存器间接寻址 寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针,如下图所示。五:基址寻址 基址寻址就是将基址寄存器中的内容与指令给出的偏移量相加,形成操作数的有效地址,如下图所示 。基址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等,如下图所示。六:多寄存器寻址 多寄存器寻址一次可传送若干个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。 在多寄存器寻址中会进行两个操作,一个是操作数据,另外一个是修改地址。 LDMIA中的A表示先进行①操作,再进行②操作。如果是LDMIB则表示先②后①,如下图所示。 LDMIA中的I表示存储器地址由低到高操作,如果是D则表示由高到低,如下图所示。七:堆栈寻址 堆栈是一个按特定顺序进行存取的存储区,操作顺序为“后进先出”,堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元即是堆栈的栈顶。存储器堆栈可分为两种,如图4.11所示。 向上生长:向高地址方向生长,称为递增堆栈。 向下生长:向低地址方向生长,称为递减堆栈。堆栈指针指向最后压入的堆栈的有效数据项称为满堆栈,堆栈指针指向下一个待压入数据的空位置称为空堆栈。如下图所示。这里可以组合出四种类型的堆栈寻址方式。 1.满递增:堆栈向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA、STMFA等。 2.空递增:堆栈向上增长,堆栈指针指向堆栈上的第一个空位置。指令如LDMEA、STMEA等。 3.满递减:堆栈向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD、STMFD等。 4.空递减:堆栈向下增长,堆栈指针指向堆栈下的第一个空位置。指令如LDMED、STMED等。 八: 相对寻址 相对寻址是基址寻址的一种变通。由程序计数器PC提供基准地址,地址码字段作为偏移量,两者相加得到的地址即为操作数有效地址,如下图所示。小结: 通过本节课的学习,我们了解了什么是寻址,以及寻址的八种方式:立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基地寻址、多寄存器寻址、堆栈寻址和相对寻址。
软件逆向需要学习的基础知识 知识块 逆向是一门杂学而非专科,涉及的知识很多,所以我这里先谈谈分块,以及每个分块的作用 汇编 汇编这块没什么特别需要说的 搞逆向不掌握一些汇编,基本就是盲人摸象,能出成果就只能靠运气。 汇编分为arm和x86两大架构 然后每个架构又分为32位和64位 随着64位机器的普及 32位程序会越来越少 这块的学习难点在于64位CPU和32位CPU差异明显,甚至可以说是巨大 所以可以认为是两个汇编语言 要精通这块非常难 但是大家可以先从简单的上手 C/C++ 为什么要说C/C++ 可能有的人说我不会这个也能逆向呀 话虽然如此,但是这里面有一个很重要的问题 很多linux或者android的系统库,都是使用C和C++写的 一些游戏的引擎、加密解密、网络通信、签名校验等等模块 也是用C/C++写的模块 除此之外,大量的开源模块(音视频、图形图像处理等)也是采用的这些开发语言 所以不会也能做,但是会可以让你有更多的手段和方法去做 除了这个原因 另外一个原因是很多逆向工具的底层也需要该语言 Java 现在是手机的时代,也是移动互联网的时代 android作为移动开发的主力平台之一 其上应用开发的主要语言Java也就自然水涨船高 熟悉Java,进而熟悉android的Java库 对于逆向分析、拦截破解有至关重要的帮助 文件格式 文件格式这块比较杂 简单的包括wav、bmp、apk文件格式 有了一定了解以后,可以尝试去解析pe、elf文件格式 然后可以尝试png、jpeg、jar、dex文件格式 最后就可以尝试一下一些没有详细文档的文件格式 比如luac、ocx 加密/编码算法 这块首先要了解的是一些基础的 比如异或、比如url编码等等 然后了解base64(出镜率极高)crc校验算法 md5 接着可以学习tea 最后可以搞搞aes des 注意这些算法可以先学习正向的 不同的算法处理过的数据会有一些特征 见多了,很多时候可以在你逆向的时候给予你很大的帮助 工具 工具这块就更多了 od、ida、wireshark、x64dbg、frida、visual studio、make、gcc 这些论坛上面有,我就不赘述了 其中有一些是开发工具,比如visual studio 虽然这些工具是开发工具,但是其中包含很多工具 比如spy++,比如depends等等 框架 逆向框架比较多 比如Cydia、xposed、substrate、ghidra等等 每个框架其所适用的平台、条件也略有差异 Cydia主要是在苹果下做逆向 xposed则主要是android下逆向 substrate是一种拦截的方案 ghidra则是一个集成环境 其他 逆向这块所需要的知识其实没有一个尽头 除了上面的一些内容,下面这些内容,对你的逆向也会有极大的帮助 网络协议(http、https、ftp、ssh) CPU架构(arm架构、x86架构、64位架构、机器码) 操作系统(Windows、Linux、android、iOS) 驱动开发 中断原理 动态库的加载和卸载 先写这么多吧,后续有问题我再修改补充 欢迎大家提问和讨论
为什么java比python复杂,还是有很多人选择学习java? 这是一个非常好的问题,也是很多初学编程的人比较关心的问题之:一,作为一 名IT从业者,同时也 是一名教育工作者,我来回答- -下。 首先,当前Java和Python都是流行程度比较高的编程语言,而且二者都同为全场景编程语言,在 Web开发、大数据开发等领域都有广泛的应用,从应用前景来看,未来很长一段时间内, Java和 Python都依然会占据着重要的位置。 Java与Python相比,在优势方面可以归纳为三点,其-是Java在生产场景 下有更健全的技术生态, 虽然当前Python语言的生态也比较完善,但是在生产场景下,Java的优势还是比较明显的,这也是 为什么很多互联网技术团队更愿意采用Java的重要原因。 其是Java在性能上的表现要更好一些, Java程序员在转向Python时会有更加明显的体验。通常来 说,在探讨语言性能时一定不能脱离应用场景,不同语言在不同的场景下往往有不同的性能表现, 就比如拿C语言与Java语言相比较,C语言的执行效率要更高,但是二者之间的应用场景并不相同, 所以这种比较意义并不大,该用C语言的程序员还是会用C语言,该用Java语言的程序员也依然会继 续用Java。 由于Java和Python语言在很多场景下是重叠的,所以探讨=者的性能就有一定必要性了 ,这也是为 什么当前对于性能要求更高的场景会使用Java的原因之一。 其三是在安全性的表现上, Java语言要更完善一些,注意是更完善,而不是更好。看一门语言在安 全领域的表现,可以重点看一下专注于安全领域的企业都在采用何种技术选型, 目前大型安全企业 的产品,尤其是工业互联网安全领域,不少产品已经从Python转向到了Java,这足以说明一定的问 题 最后,对于要进入IT互联网行业发展的人来说,当前学习Java语言是不错的选择,而对于要进入传 统行业发展的人来说,可以重点学习-下Python。
想学习安卓逆向,有大佬吗? 现在处于一个零基础阶段,贴吧的各位大佬们有没有资源啊,介绍介绍
首页
1
2
下一页