Blog

from https://docs.microsoft.com/en-us/nuget/create-packages/prerelease-packages Whenever you release an updated package with a new version number, NuGet considers that one as the “latest stable release” as shown, for example in the Package Manager UI […]

READ MORE

PAC list

By : -

// Generated by gfwlist2pac // https://github.com/clowwindy/gfwlist2pac var domains = { “gimpshop.com”: 1, “directcreative.com”: 1, “speedpluss.org”: 1, “mingpaovan.com”: 1, “wikinews.org”: 1, “joachims.org”: 1, “maiio.net”: 1, “idv.tw”: 1, “mail-archive.com”: 1, “surfeasy.com.au”: 1, […]

READ MORE

Java vs C# 第二篇

By : -

final关键字 final在Java语言中是相当重要的一个关键字。它作用于不同概念所对应的C#关键字如下表所示: 概念 C#对应 备注 类 sealed 封闭类,不能被继承 成员变量 readonly 只能在定义时或构造器中初始化 成员方法  — 无法被覆盖,C#可以用new关键字强制覆盖 私有变量 const 一旦赋值,无法修改 内部类和嵌套类 在C#中只有嵌套类没有内部类。 Java对内部类的定义是:将一个类的定义放在另一个类的定义内部。下面用一个表格来描述Java的内部类和嵌套类及C#的嵌套类的一些特性。 特性 Java内部类 Java嵌套类 C#嵌套类 定义方式 定义于另一个类内部且是非static 定义于另一个类内部且是static 定义于另一个类内部 内部/嵌套类对外围类可见性 可见 […]

READ MORE

Java vs C# 第一篇

By : -

包装器和基本类型 在Java的世界中,一切都是对象。不过也有几个例外,那就是Java中的基本类型。Java的基本类型包含以下几个:boolean,char,byte,short,int,long,float,double,void。这些类型都属于“值”类型,是直接分配在栈上的。这几种类型分别还对应着各自的包装器类型,如下表所示: 基本类型 包装器类型 boolean Boolean char Char byte Byte short Short int Integer long Long float Float double Double void Void 了解C#的同学会指出在C#中也有int和Int32类似写法,这里int是使用using对Int32起的别名而已,本质上还是值类型。但是在Java里,包装器类型是实实在在的引用类型了。让我们看一段Java代码: public void testType() { int i = […]

READ MORE

C# vs JAVA

By : -

java和c#都是面向对象的程序语言,它们不论是在语法层次还是语言设计层次都有诸多相似之处。笔者大部分时间用的c#,不过工作中也有机会使用java语言。所以为了更好的理解java语言,进而深入了解其设计理念、jvm等高级知识,故决定采用对比的方式来学习。通过找出两种语言/平台的不同来加强对c#的理解,同时也能拓展对java的认知。本篇文章将会以目录的形式存在。 Java vs C# 第一篇 Java vs C# 第二篇

READ MORE

bss段: BSS段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文BlockStarted by Symbol的简称。BSS段属于静态内存分配。 data段: 数据段(datasegment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。 text段: 代码段(codesegment/textsegment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。 rodata段: 存放C中的字符串和#define定义的常量 heap堆: 堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减) stack栈: 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。 常量段: 常量段一般包含编译器产生的数据(与只读段包含用户定义的只读数据不同)。比如说由一个语句a=2+3编译器把2+3编译期就算出5,存成常量5在常量段中

READ MORE

修改ANDROID_ID

By : -

首先了解一下什么是ANDROID_ID: ANDROID_ID Added in API level 3 String ANDROID_ID A 64-bit number (as a hex string) that is randomly generated when the user first sets up the device and should […]

READ MORE

在安装codeblock时遇到此问题: checking for wx-config… /usr/bin/wx-config checking for wxWidgets version >= 2.8.12… yes (version 3.1.0) checking for wxWidgets static library… no checking for wxWidgets platform… wxGTK checking for pkg-config… yes checking […]

READ MORE

本文介绍了Wireshark的显示过滤器的一些基本用法和例子,阅读本篇你将掌握Wireshark显示过滤器的基本用法。 Wireshark的过滤器分为两种:捕获过滤器和显示过滤器。当设置捕获过滤器时Wireshark只能抓去对应过滤器的网络包,而显示过滤器则是对已抓取包的展示过滤。为什么要分为两种概念,因为这两种过滤器语法是不一样的。 Wireshark提供了非常强大的显示过滤器语法,你可任意组合过滤条件,也可以与网络包中的数据做比较,或者你乐意的话,组合起来使用也是完全没问题的。总之,它很强大。 0x00 显示过滤器的字段 在网络包详情列表中的每一个字段都可以当作过滤器字符使用。比如说你只想看tcp协议的包,那么在显示过滤器输入框中输入tcp再回车就可以啦。此时列表中就只显示tcp及基于tcp协议之上的网络包了。 点击显示过滤器输入框右侧的【表达式…】按钮,你可以看到各种各样的协议,这里汇集了Wireshark所有支持的显示过滤器字段。根据你的实际要求尽情使用吧。 0x01 比较操作符 开篇我们提到了Wireshark的显示过滤器是支持值比较的。那么就让给我们看看Wireshark中的比较操作符吧。Wireshark的比较操作符分为两种风格,一种是字母写法,一种是类C语言的比较操作符。可以从下面的表格详细看一下: 字母法 类C语言法 示例 eq == ip.src == 192.168.1.1 ne != ip.src != 192.168.1.1 gt > frame.len > 10 lt < […]

READ MORE

最近由于工作上的需要,就稍微了解了一下Dalvik虚拟机语言的相关知识。本篇文章主要介绍了什么是Dalvik虚拟机和Dalvik虚拟机语言的基本内容,最后以一个例子来逐句分析。 0x00 Dalvik虚拟机 在说到Dalvik指令前,首先需要知道什么是Dalvik。Dalvik是用于运行Android程序的虚拟机,概念上和Java虚拟机.NET CLR是一样的。同样是Java平台的,为什么不延用Java虚拟机,而非要搞出个Dalvik虚拟机呢?这是因为相比于Java虚拟机,Dalvik存在以下几个特点: 体积小,占用内存空间小; 专有的DEX可执行文件格式,体积更小,执行速度更快; 常量池采用32位索引值,寻址类方法名、字段名、常量更快; 基于寄存器架构,并拥有一套完整的指令系统; 提供了对象生命周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等重要功能; 所有的Android程序都运行在Android系统进程中,每个进程对应着一个Dalvik虚拟机实例。 其中前四点是非常重要的,因为这些特点是完全针对Android的真实运行环境设计的,即手机、平板等一类资源有限的设备。 0x01 Dalvik字节码 如果你对.NET中IL有所了解,那么初次看见Dalvik字节码也不会感到很不适应,毕竟这种中间语言的基本思路还是差不多的。Dalvik字节码主要由基于Dalvik虚拟机的类型、方法、字段及指令集构成的。 类型 与Java语言一样,Dalvik中也是分为基本类型和引用类型的,除了void、boolean、byte、short、char、int、long、float、double之外的所有类型都是引用类型(一有Java是纯种的OO语言,所有都是引用类型之说,这里暂不纠结于此)。 各个类型对应的Dalvik字节码描述符如下表格所示: 语法 含义 V void,只做返回值类型用 Z boolean B byte S short C char […]

READ MORE