- 某汽车社区App 签名和加解密分析 (二) : Frida Dump so
fenfei331
一、目标App安全的主战场在Native层,分析Native层的so,最趁手的兵器就是Frida和Unidbg了。今天我们的目标是某汽车社区Appv8.0.1so的分析。二、步骤特征字符串定位我们在上一篇教程某汽车社区App签名和加解密分析已经定位了,数据加密和解密函数再java层的位置。codeutils.png按照常理来说,这个java类文件中,应该有个System.loadLibrary("
- Android逆向-实战so分析-某洲_v3.5.8_unidbg学习
哔哩哩!
移动安全androidapp安全java安全
文章目录1.unidbg的介绍2.unidbg的安装2.1.下载unidbg工具2.2.导入IDEA2.3.验证导入是否成功3.unidbg的使用3.1.目标方法静态分析3.2.模拟执行目标方法3.3.算法分析3.3.1.OLLVM去混淆3.3.2.指令级Hook辅助分析3.3.3.unidbg寄存器trace分析4.补充知识4.1.JNIEnv、jobject、jclass4.1.2.JNIEn
- ollvm反混淆实战
uiop_uiop_uiop
android脱壳OLLVM
[原创]记一次基于unidbg模拟执行的去除ollvm混淆-Android安全-看雪-安全社区|安全招聘|kanxue.com参考上面的博客进行操作。这里记录操作细节配置unidbg框架gitclone--recursivehttps://github.com/zhaoboy9692/unidbgweb.git然后在unidbg-android中添加自定义类文中需要添加5个system的lib,和
- 电商项目再创佳绩,成功实现某东APP数据抓取
bugtraq2021
javapython
最近一直在研究和学习Unidbg。然后,实现了某东的APP的数据抓取。目前测试的抓取评论内容,看下效果:APP截图请求页面sign获取接下来,程序还需要继续优化,继续做好各个接口,尤其是常用接口的对接和封装。
- 探寻闲鱼SellerId加解密算法(2) ——还原C代码
bugtraq2021
算法c语言汇编
前几天实现了闲鱼SellerId加密还原,但原理还是基于Unidbg调用闲鱼的so文件,按程序执行方式执行的解密操作。这种实现的弊端在于无法还原真正的算法,而且想在此基础上逆向算法,比如将明文加密,甚至是学习算法细节,就很是不足了。所以继续尝试在执行的过程中,还原出整个算法的代码。那么,今天的内容来了。郑重声明:1、此版本代码系阿里已经更新换代过的产品,目前已经不再正式使用。2、此文章内容仅供参考
- 固定参数-以京东sign逆向为例
ever_hu
固定参数-以京东sign逆向为例前言在逆向过程中,需要结合frida或unidbg,对整个算法进行一步步的分析,有时候我们分析完某一部分,想要继续往下分析时,需要重新发起请求,这时候的参数往往都已经改变了,这样会打断我们的节奏,影响效率。此外,有些算法除了我们外部传进去的参数外,还有一些其他的参数参与了加密,比如时间戳,随机数,一旦这些参与了算法,那么即使每次的传入参数不变,加密的结果还是会变。外
- 使用unidbg
静析机言
一、前言unidbg是一个基于unicorn的逆向工具,可黑盒调用移动app中的so文件,运行时不需要模拟器或真机。有时用真机调so文件难以过反调试,而unidbg可以弥补这块缺陷。当然了,unidbg也不是万能的,怎么给unidbg补环境也是个问题。二、步骤1.首先要将java、maven、IDEA配置好。https://blog.csdn.net/pan_junbiao/article/det
- 某车联网App 通讯协议加密分析(二) Unidbg手把手跑通
fenfei331
一、目标有一段时间没有写unidbg相关的文章了,这个样本挺合适,难度适中,还适当给你挖个小坑。所以后面是一个系列文章,包含unidbg补环境,TraceBlock对比流程,TraceCode定位差异。掌握好这一系列套路,Native分析可以算入门了。这次先来把so用unidbg跑通v6.1.0二、步骤DumpsoIDA打开libencrypt.so去到我们要分析的两个函数checkcode和de
- soul cs字段unidbg逆向
ever_hu
so逆向unidbg能跑了,接下就是结合ida进行逆向。image-20220120172901058先跳转到函数的地址0xaa73cimage-20220120173009572很显然,so经过了混淆。实际上,里面很多函数都经过了ollvm平坦化。image-20220120174202964接下来,我们要把它进行一个还原。image-20220120174434258鼠标放在BX语句上,Tab
- tujia民宿X-TJH及请求数据unidbg实现
ever_hu
tujia民宿X-TJH及请求数据unidbg实现环境app8.45.0Java层image-20220115175957610jadx搜索x-tjhimage-20220114094819029com.tujia.libs.engine.model.TJRequest.gimage-20220114094910472com.tujia.gundam.Gundam.acom.tujia.gunda
- Android逆向 某州 解密sign字段 so层 算法分析 Unidbg模拟执行
zhoumi_
安卓逆向
跟着龙哥学SO逆向入门实战教程一:OASIS前言功力不及龙哥百分之一文笔也是实力也是,仅作为个人记录学习过程。龙哥博客传送门1.需解密对象“sign”字段跟着龙哥学的,忘了查壳用jadx打开之后发现文件有点少查壳之后发现是x60加固。掉以轻心了…2.脱壳查壳脱壳直接上dump_dex.js3.定位到java关键函数重新压缩成zip用jadx再次打开搜索“sign”去掉一些加载sdk的包名是个剩下框
- unidbg补环境 - 某东APP sign分析
chyes
写在最前面上篇是通过frdiahook分析目标app的sign参数,这篇文章通过unidbg补环境,来获取到目标参数。同时记录下unidbg补环境的过程。补环境搭建好模版publicclassJingDongSignextendsAbstractJni{privatefinalAndroidEmulatoremulator;privatefinalVMvm;privatefinalModulemo
- go-cqhttp签名服务sign-server的本地搭建
向晚向晚,理智性感
go-cqhttp
新版go-cqhttp新增签名服务器签名服务器相关问题·Issue#2242·Mrs4s/go-cqhttp·GitHubhttps://github.com/Mrs4s/go-cqhttp/issues/2242其在win10系统下本地化搭建的方式为:部署在Windows·fuqiuluo/unidbg-fetch-qsignWiki·GitHub获取QQSign通过Unidbg.Contrib
- 某APP参数Sign使用unidbg实现&算法实现
Syriacus_qi
python
抓个包看看,一个Sign签名校验。上jadx,看看。一般都是搜索参数名,Sign,或"Sign"。看来是native层加密,so里面执行加密。fridahook这个getNativeAPI方法看看传入参数是什么,没有frida检测。第一个参数是空第二个参数是个10位的时间戳第三个参数是提交参数原始数据,经过gzip和aes加密。将so导入IDA看看,导出函数有这个,说明是静态注册方法。下来上uni
- 快速部署Qsign签名服务器为go-cqhttp或icqq进行签名认证
贰狐
外行人的小经验服务器运维自动化
rhwong/unidbg-fetch-qsign-onekey:用于一键在Windows下部署fuqiuluo/unidbg-fetch-qsign(github.com)本项目使用1.1.6版本,由于当前go-cqhttp(1.1.0)暂未适配,请来此repo下载非官方编译版本。如需旧版请移步release用于一键在Windows下部署fuqiuluo/unidbg-fetch-qsign注意
- 某旅游app native层算法分析记录
qq_40157234
安卓篇python旅游
1、先使用unidbg补出结果2、动态调试v18是一串字符串3、进入context_init判断刚才那串字符串的长度,如果大于64,就标准sha1一下,结果保存在hmac_key中,如果key小于64,就直接作为hmac算法的key4、然后生成hmac算法的ipad,ipad生成后sha1_init一下然后再sha1_update一下.sha1算法都是标准的。然后再生成hmac算法的opad,注意
- 某车联网App 通讯协议加密分析(三) Trace Block
fenfei331
一、目标之前我们已经用unidbg跑通了libencrypt.so,那么如何判断跑出来的结果是对是错?再如何纠正unidbg跑错误的流程,是我们今天的目标。v6.1.0二、步骤找到明显的接口来判断checkcode是加密,加密的结果确实不好判断是否正确。不过我们可以试试解密,能解密就是对的,简单粗暴。这里解密函数是decheckcode。publicvoidcallB(){StringstrA="
- 汽车之家apisign unidbg逆向
ever_hu
汽车之家apisignunidbg逆向逆向之前分析到了native函数的入口是sub_2D91Cimage-20220109162920590看看sub_2D8C0image-20220109162941845看看sub_2CC58image-20220109163054159由于if其他分支都是报CalcMd5Failure,所以v13等于v22。image-20220109163317941在
- tujia民宿X-TJH及请求数据unidbg逆向
ever_hu
tujia民宿X-TJH及请求数据unidbg逆向X-TJH逆向ida跳转0x36a9image-20220114150250593image-20220114150319100image-20220115091717394由于X-TJH的长度是40,猜测是SHA1。可以看出v58就是最后的加密结果,而v70[57]就是它原始的字节数组结果。往前看到j_tjget,很自然猜测它是类似于SHA1的F
- qimao小说sign字段逆向及unidbg实现
ever_hu
qimao小说sign字段逆向及unidbg实现Java层image-20220123212829789apk是加固的,这次脱壳使用的是frida_dumpfrida-U--no-pause-fcom.kmxs.reader-ldump_dex.js然后再重新打包importpathlibimportzipfiledefget_files(dex_dir):fdir=pathlib.Path(de
- meili说mw-sign字段unidbg逆向
ever_hu
meili说mw-sign字段unidbg逆向Java层image-20220303144238858com.mogujie.mwpsdk.valve.RequestSignValve.aimage-20220303144349180com.mogujie.mwpsdk.valve.RequestSignValve.aimage-20220303144436214com.mogujie.mwpsd
- huoshan_火山版 xl,xa,xg,xk 签名参数分析
埃菲尔没有塔尖
安卓逆向分析python
纯属技术研究,如有侵权,请联系删除。先来抓个包,在某音火山版15.3.0版本,截止到发表日期,还是最新版的,还是我们熟悉的四神参数xl,xa,xg,xk,隔壁的在23版本中已经上六神参数了。经过几天的测试分析,发现如果是简单的请求,只需要用到xg参数就可以,要是做其他接口,就需要用到四神签名了。截个图看看:算法还原,抠so这辈子是不可能了,混淆太厉害了。我们还是老老实实的拿出的unidbg补补环境
- ibox wtoken 算法分享
北方蜘蛛
现在很多人在搞科技抢单,尤其是现在非常火爆的ibox,很多人搞出来了ibox抢单软件,其主要核心功能就是更早的发送创建订单的请求,但是这里吗里面会涉及到核心的wtoken算法,下面是乌云分享的代码,目前已经完美运行packageibox;importcom.github.unidbg.AndroidEmulator;importcom.github.unidbg.Emulator;importco
- douyin 六神x-helios / x-medusa解密记录学习
埃菲尔没有塔尖
安卓逆向分析学习linux运维python
在某音新版本的抓包中,经常会遇到两个熟悉的字段x-helios,x-medusa,它是新版本中风控的重要组成部分。通常而言,我们可以使用像frida,unidbg来模拟计算出六神参数,比如说我们随便找一个23.9版本生成一个:'X-Helios':'RcuADv+pS6hIYDBIqK1cQvarDeE8ACQEGdfgGaKget3cvOfw','X-Medusa':'6ZQXZd34ggne5
- android elf内存回收,重写方法后报内存异常 · Issue #165 · zhkl0228/unidbg · GitHub
dotNet工控上位机
androidelf内存回收
"C:\ProgramFiles\Java\jdk1.8.0_171\bin\java""-javaagent:D:\IntelliJIDEA2017.3\lib\idea_rt.jar=8513:D:\IntelliJIDEA2017.3\bin"-Dfile.encoding=UTF-8-classpath"C:\ProgramFiles\Java\jdk1.8.0_171\jre\lib\c
- shihuo sh-sign字段unidbg逆向
ever_hu
shihuosh-sign字段unidbg逆向环境app:6891Java层GDA搜索sh-sign,image-20220223102406736com.shizhi.shihuoapp.module.framework.b.a.himage-20220223102432621cn.shihuo.modulelib.utils.bd.aimage-20220223102504101com.shi
- kuaidui作业unidbg逆向(2)
ever_hu
kuaidui作业unidbg逆向nativeInitBaseUtil在unidbg实现中,调用nativeGetSign之前,需要先调用nativeSetToken,这是因为需要先设置objSpamServer.random_numberimage-20220126151954449image-20220126152038418而nativeSetToken的入参又来自于nativeInitBa
- 另一使用unidbg的实例—华山论剑
静析机言
去年做看雪2021KCTF春季赛第五题华山论剑(原题见下面的链接)时,碰到了很多奇怪的问题。https://ctf.pediy.com/game-season_fight-174.htm在nexus5手机上,输入任何内容直接显示“很抱歉,“HelloJni”已停止运行”,怀疑有可能是手机上装有Xposed、frida等工具,从而不能正常运行。在pixel手机下可正常运行,以32位安装apk,然后让
- 安卓逆向 - 某东sign(基于unidbg主动调用)
小馒头yy
爬虫androidjava爬虫网络爬虫
本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,拒绝转载,若有侵权请联系我删除!目标app:5Lqs5LicYXBwMTEuMy4y目标接口:aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPXNlYXJjaA==一、引言接上篇安卓逆向-某东body参数算法还原_小馒头yy的博客-CSDN博客我们抓到了关键
- 吾爱2023新年红包题第六题 (CTF)
Codeooo
CTF及小游戏工具Unidbg大杀器java前端服务器
直接开整:直接顺着方法找就行;if(84.0d"+pointer.getString(0));}}@Override//com.github.unidbg.arm.backend.DetachablepublicvoidonAttach(UnHookunHook){}@Override//com.github.unidbg.arm.backend.Detachablepublicvoiddetac
- VMware Workstation 11 或者 VMware Player 7安装MAC OS X 10.10 Yosemite
iwindyforest
vmwaremac os10.10workstationplayer
最近尝试了下VMware下安装MacOS 系统,
安装过程中发现网上可供参考的文章都是VMware Workstation 10以下, MacOS X 10.9以下的文章,
只能提供大概的思路, 但是实际安装起来由于版本问题, 走了不少弯路, 所以我尝试写以下总结, 希望能给有兴趣安装OSX的人提供一点帮助。
写在前面的话:
其实安装好后发现, 由于我的th
- 关于《基于模型驱动的B/S在线开发平台》源代码开源的疑虑?
deathwknight
JavaScriptjava框架
本人从学习Java开发到现在已有10年整,从一个要自学 java买成javascript的小菜鸟,成长为只会java和javascript语言的老菜鸟(个人邮箱:
[email protected])
一路走来,跌跌撞撞。用自己的三年多业余时间,瞎搞一个小东西(基于模型驱动的B/S在线开发平台,非MVC框架、非代码生成)。希望与大家一起分享,同时有许些疑虑,希望有人可以交流下
平台
- 如何把maven项目转成web项目
Kai_Ge
mavenMyEclipse
创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web Module的Version为2.5.(3.0为Java7的,Tomcat6不支持). 如果提示错误,可能需要在Java Compiler设置Compiler compl
- 主管???
Array_06
工作
转载:http://www.blogjava.net/fastzch/archive/2010/11/25/339054.html
很久以前跟同事参加的培训,同事整理得很详细,必须得转!
前段时间,公司有组织中高阶主管及其培养干部进行了为期三天的管理训练培训。三天的课程下来,虽然内容较多,因对老师三天来的课程内容深有感触,故借着整理学习心得的机会,将三天来的培训课程做了一个
- python内置函数大全
2002wmj
python
最近一直在看python的document,打算在基础方面重点看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception这四个方面,其实在看的时候发现整个《The Python Standard Library》章节都是很不错的,其中描述了很多不错的主题。先把Build-in Fu
- JSP页面通过JQUERY合并行
357029540
JavaScriptjquery
在写程序的过程中我们难免会遇到在页面上合并单元行的情况,如图所示
如果对于会的同学可能很简单,但是对没有思路的同学来说还是比较麻烦的,提供一下用JQUERY实现的参考代码
function mergeCell(){
var trs = $("#table tr");
&nb
- Java基础
冰天百华
java基础
学习函数式编程
package base;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
// Integer a = 4;
// Double aa = (double)a / 100000;
// Decimal
- unix时间戳相互转换
adminjun
转换unix时间戳
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒 Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 62135
- 作为一个合格程序员该做的事
aijuans
程序员
作为一个合格程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重
- 由html5视频播放引发的总结
ayaoxinchao
html5视频video
前言
项目中存在视频播放的功能,前期设计是以flash播放器播放视频的。但是现在由于需要兼容苹果的设备,必须采用html5的方式来播放视频。我就出于兴趣对html5播放视频做了简单的了解,不了解不知道,水真是很深。本文所记录的知识一些浅尝辄止的知识,说起来很惭愧。
视频结构
本该直接介绍html5的<video>的,但鉴于本人对视频
- 解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat
bewithme
httpclient
如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path bu
- Jedis连接池的入门级使用
bijian1013
redisredis数据库jedis
Jedis连接池操作步骤如下:
a.获取Jedis实例需要从JedisPool中获取;
b.用完Jedis实例需要返还给JedisPool;
c.如果Jedis在使用过程中出错,则也需要还给JedisPool;
packag
- 变与不变
bingyingao
不变变亲情永恒
变与不变
周末骑车转到了五年前租住的小区,曾经最爱吃的西北面馆、江西水饺、手工拉面早已不在,
各种店铺都换了好几茬,这些是变的。
三年前还很流行的一款手机在今天看起来已经落后的不像样子。
三年前还运行的好好的一家公司,今天也已经不复存在。
一座座高楼拔地而起,
- 【Scala十】Scala核心四:集合框架之List
bit1129
scala
Spark的RDD作为一个分布式不可变的数据集合,它提供的转换操作,很多是借鉴于Scala的集合框架提供的一些函数,因此,有必要对Scala的集合进行详细的了解
1. 泛型集合都是协变的,对于List而言,如果B是A的子类,那么List[B]也是List[A]的子类,即可以把List[B]的实例赋值给List[A]变量
2. 给变量赋值(注意val关键字,a,b
- Nested Functions in C
bookjovi
cclosure
Nested Functions 又称closure,属于functional language中的概念,一直以为C中是不支持closure的,现在看来我错了,不过C标准中是不支持的,而GCC支持。
既然GCC支持了closure,那么 lexical scoping自然也支持了,同时在C中label也是可以在nested functions中自由跳转的
- Java-Collections Framework学习与总结-WeakHashMap
BrokenDreams
Collections
总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。
强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集
- 读《研磨设计模式》-代码笔记-解释器模式-Interpret
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 解释器(Interpreter)模式的意图是可以按照自己定义的组合规则集合来组合可执行对象
*
* 代码示例实现XML里面1.读取单个元素的值 2.读取单个属性的值
* 多
- After Effects操作&快捷键
cherishLC
After Effects
1、快捷键官方文档
中文版:https://helpx.adobe.com/cn/after-effects/using/keyboard-shortcuts-reference.html
英文版:https://helpx.adobe.com/after-effects/using/keyboard-shortcuts-reference.html
2、常用快捷键
- Maven 常用命令
crabdave
maven
Maven 常用命令
mvn archetype:generate
mvn install
mvn clean
mvn clean complie
mvn clean test
mvn clean install
mvn clean package
mvn test
mvn package
mvn site
mvn dependency:res
- shell bad substitution
daizj
shell脚本
#!/bin/sh
/data/script/common/run_cmd.exp 192.168.13.168 "impala-shell -islave4 -q 'insert OVERWRITE table imeis.${tableName} select ${selectFields}, ds, fnv_hash(concat(cast(ds as string), im
- Java SE 第二讲(原生数据类型 Primitive Data Type)
dcj3sjt126com
java
Java SE 第二讲:
1. Windows: notepad, editplus, ultraedit, gvim
Linux: vi, vim, gedit
2. Java 中的数据类型分为两大类:
1)原生数据类型 (Primitive Data Type)
2)引用类型(对象类型) (R
- CGridView中实现批量删除
dcj3sjt126com
PHPyii
1,CGridView中的columns添加
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style=&
- Java中泛型的各种使用
dyy_gusi
java泛型
Java中的泛型的使用:1.普通的泛型使用
在使用类的时候后面的<>中的类型就是我们确定的类型。
public class MyClass1<T> {//此处定义的泛型是T
private T var;
public T getVar() {
return var;
}
public void setVa
- Web开发技术十年发展历程
gcq511120594
Web浏览器数据挖掘
回顾web开发技术这十年发展历程:
Ajax
03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
- openSession()与getCurrentSession()区别:
hetongfei
javaDAOHibernate
来自 http://blog.csdn.net/dy511/article/details/6166134
1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。
这里getCurrentSession本地事务(本地
- 第一章 安装Nginx+Lua开发环境
jinnianshilongnian
nginxluaopenresty
首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒
- HSQLDB In-Process方式访问内存数据库
liyonghui160com
HSQLDB一大特色就是能够在内存中建立数据库,当然它也能将这些内存数据库保存到文件中以便实现真正的持久化。
先睹为快!
下面是一个In-Process方式访问内存数据库的代码示例:
下面代码需要引入hsqldb.jar包 (hsqldb-2.2.8)
import java.s
- Java线程的5个使用技巧
pda158
java数据结构
Java线程有哪些不太为人所知的技巧与用法? 萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常
工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。
- 开发资源大整合:编程语言篇——JavaScript(1)
shoothao
JavaScript
概述:本系列的资源整合来自于github中各个领域的大牛,来收藏你感兴趣的东西吧。
程序包管理器
管理javascript库并提供对这些库的快速使用与打包的服务。
Bower - 用于web的程序包管理。
component - 用于客户端的程序包管理,构建更好的web应用程序。
spm - 全新的静态的文件包管
- 避免使用终结函数
vahoa.ma
javajvmC++
终结函数(finalizer)通常是不可预测的,常常也是很危险的,一般情况下不是必要的。使用终结函数会导致不稳定的行为、更差的性能,以及带来移植性问题。不要把终结函数当做C++中的析构函数(destructors)的对应物。
我自己总结了一下这一条的综合性结论是这样的:
1)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方