自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yes_butter的博客

愿你走出半生,归来仍是少年

  • 博客(40)
  • 收藏
  • 关注

原创 JVM学习笔记

目录Java JVM虚拟机学习1 JVM2 内存管理机制2.1 Java内存区域2.2 对象2.3 OutOfMemoryException3.垃圾收集器与内存分配策略3.1 那些内存需要回收3.2 垃圾收集算法3.3 HotSpot算法实现3.4 经典垃圾收集器3.5 内存分配与回收策略4.虚拟机性能监测与故障处理工具jpsjstatjinfojmapjhatjstackVi...

2020-05-08 13:24:25 382

原创 学习笔记-第十八章 恶意代码分析实战

第十八章 加壳和脱壳加壳可执行文件的俩个主要目的是缩减程序的大小,阻碍对加壳程序的探测和分析。1.剖析加壳 恶意代码加壳后,分析人员通常只能获得加壳文件,而不能检测原始程序及加壳器。 要脱壳一个可执行文件,我们必须解开加壳所执行的操作,首先,我们需要理解加壳 器的工作原理。 所有加壳器都是将一个可执行文件作为输入,输出一个新的可执行文件。被加壳的可 执行文件经过压缩,加密或者其...

2019-04-09 11:58:15 634

原创 学习笔记-第十七章 恶意代码分析实战

第十七章 反虚拟机技术恶意代码编写者经常使用反虚拟机技术逃避分析,恶意代码可以使用这种技术探测自己是否运行在虚拟机中。如果恶意代码探测到自己运行在虚拟机中运行,它会执行与其本身行为不同的行为,其中更简单的行为是停止自身运行。1.VMware痕迹 VMware虚拟环境在系统中遗留了很多痕迹,特别是在VMware Tools软件安装之后。因此,恶意代码可以通过存在于操作系统的文件系统,注册表和...

2019-04-07 14:49:41 646

原创 学习笔记-第十六章 恶意代码分析实战

第十六章 反调试技术反调试技术,恶意代码用它识别是否被调试,或者让调试器失效。恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间。1.探测Windows调试器 <1>使用Windows API 使用Windows API函数探测调试器是否存在是最简单的反调试技术。 IsDebuggerPresent 查询进程环...

2019-04-03 15:21:32 540

原创 学习笔记-第十五章 恶意代码分析实战

第15章 对抗反汇编所谓对抗反汇编技术,就是程序中使用一些特殊构造的代码或数据,让反汇编分析工具产生不正确的程序代码列表。这种技术由恶意代码编写者手工构造,在恶意代码编译和部署阶段使用一个单独的混淆工具,或是直接在源码中插入混淆代码。所有恶意代码的设计都有特殊目的:键击记录,后门访问,使用目标系统发送大量电子邮件让服务器瘫痪,等等。恶意代码编写者会使用对抗反汇编技术来延缓分析人员分析恶意代码...

2019-03-28 10:33:33 528

原创 学习笔记-第十四章 恶意代码分析实战

第十四章 恶意代码的网络特征1.网络应对措施。 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全设备可以利用它们,来提供网络应对措施。根据IP地址和端口,防火墙和路由器可以限制对网络的访问。入侵检测系统,入侵防御系统,以及电子邮件和web代理等其他安全应用。 作为常用术语的入侵检测系统已经过时了。特征不再仅仅用在入侵检测方面,还可以用来检测网络扫描,服务枚举与分...

2019-03-26 16:48:22 1473

原创 学习笔记-第十三章 恶意代码分析实战

第13章 数据加密 在恶意代码分析中,术语数据加密是指以隐藏真是意图为目的的内容修改。由于恶意代码 使用加密技术隐藏它们的恶意活动,作为分析人员,要全面的了解恶意代码,就需要掌握 这些技术。 1.分析加密算法的目的 - 隐藏配置信息。如:命令和控制服务器域名 - 窃取信息之前将它保存到一个临时文件。 - 存储需要使用的字符串,并在使用前对其加密。 - 将恶意代码伪装成一个合法的...

2019-03-25 11:19:10 1202

原创 学习笔记-第十二章 恶意代码分析实战

第12章 隐蔽的恶意代码启动1.启动器 启动器是一种设置自身或其他恶意代码片段以达到即使或将来秘密运行的恶意代码。 启动器的目的是安装一些东西,以使恶意行为对用户隐蔽。 启动器经常包含它要加载的恶意代码。最常见的情况是在它的资源节中包含一个可执行文件或者dll。 正常情况下,Windows pe文件格式中的资源节是供可执行程序使用的,但并不应该是可执行程序的 组成代码。正常资源节的内容...

2019-03-24 12:13:44 1494

原创 学习笔记-第十一章 恶意代码分析实战

第十一章 恶意代码行为//第10章是使用windbg调试内核,奈何学习精力有限,先跳过内核调试的学习1.下载器和启动器 下载器从互联网上下载其他的恶意代码,然后在本地上运行。下载器通常会与漏洞利用打包 在一起。下载器常用的Windows API函数URLDownloadtoFileA和WinExec,并下载运行新 的恶意代码。 启动器(也称为加载器)是一类可执行文件,用来安装立即运行或...

2019-03-22 22:17:51 1178

原创 学习笔记-第九章 恶意代码分析实战

第九章 OllyDbg1.加载恶意代码 直接加载可执行文件,甚至dll程序。如果恶意代码已经在你的系统上运行,你可以通过附加进程的 方式调试它。另外,ollydbg是一个灵活的调试系统,可以使用命令行选项运行恶意代码,甚至支持 执行DLL中某个函数。 打开一个可执行文件, 使用ollydbg调试恶意代码的最简单方式,是选择ollydbg界面中的File-open 然后浏览到要加载的...

2019-03-18 23:05:10 1104

原创 学习笔记-第八章 恶意代码分析实战

第八章 动态调试1.源代码级与汇编级的调试器 多数软件开发者熟悉源码级的调试器。这类调试器一般内置于集成开发环境中。为了检查程序内部变 量的状态一次一行的运行程序,源码级别的调试器允许设置断点,让程序中断在源代码某行。 汇编级调试器,也称为底层调试器,它的操作对象不是源代码而是汇编代码。同源代码级调试器一 样,你也可以使用汇编级调试器按照一次一条指令的方式运行程序。在某行汇编代码上设置...

2019-03-15 12:18:36 509

原创 学习笔记-第七章 恶意代码分析实战

第七章1.Windows API 广泛的功能集合,管理恶意代码与微软程序库之间的交互方式。 &amp;lt;1&amp;gt; 类型,表达方法。 dw表示 double word。w表示word。H表示Handles &amp;lt;2&amp;gt; 句柄 比如一个窗口,模块,菜单,文件等等 &amp;lt;3&amp;gt; 文件系统函数 &amp;lt;4&amp;gt; 特殊文件2.Windows 注册表 注册表用来保存操作

2019-03-14 21:50:08 1303 1

原创 学习笔记-第六章 恶意代码分析实战

课后作业本章实验的目标是帮助你通过分析代码结构来理解一个程序的总体功能。每一个实验将指导你发现和分析一个新的代码结构。每一个实验在前一个基础上构建,因此通过四种结构创建了一个复杂的恶意代码片段。一旦你完成了这个实验所需的工作,你应该能够挡在恶意代码中遇到它们时,更容易地识别这些单独的结构。Lab 6-1在这个实验中,你将分析在文件Lab06-01.exe中发现的恶意代码。问题1.由mai...

2019-03-12 20:54:37 770

原创 学习笔记-第五章 恶意代码分析实战

第五章1.加载可执行文件。可以选择加载方式。 使用二进制文件进行反汇编等等。因为恶意代码有时会带有shellcode,其他数据,加密参数,甚至在合法的PE文件中带有可执行文件,并且包含这些附加数据的恶意代码在Windows上运行或被加载到IDA Pro时,它并不会被加载到内存。2.选择合适的反汇编窗口模式 &lt;1&gt;图形模式,图形模式更容易看清流程,对于每一个跳转比较清除 &...

2019-03-11 12:54:40 893

原创 学习笔记-第四章 恶意代码分析实战

第四章x86反汇编学习一。计算机系统被描述为以下六个抽象层次。 1.硬件。 硬件层是唯一的一个物理层,由电子电路组成。这些电路实现了xor,and,or,not门等逻辑运算器的 复杂组合,成为数字逻辑。由于物理特性,硬件很难被软件所操纵。 2.微指令。 微指令又成为固件。微指令只能在为它设计的特定电路上执行。这层由一些微指令构成,它们 从更高的机器码层翻译过来,提供了访问硬件的接口...

2019-03-04 22:45:35 627

原创 学习笔记-第三章 恶意代码分析实战

第三章1.使用沙箱分析恶意代码,部分公司提供免费的沙箱。缺点是只能简单的运行可执行程序,不能带有命令行的选项。 如果恶意代码需要一些指令才可以运行,在不提供条件的情况下,任何代码都不会被执行。2.运行恶意代码。 启动dll文件,可以使用 cmd命令 rundll32.exe DLLname,Export argc export argc是dll导出表的函数名或者序号。3.Proce...

2019-03-03 10:49:47 1068

原创 学习笔记-第二章 恶意代码分析实战

第二章在虚拟机中分析恶意代码vmware虚拟机分析时: 1.让恶意代码连接互联网。 可能会造成通过网络连接到主机,所以要确保可以 承担相应风险之后,才可以让它联网 2.连接和断开外围设备。 部分病毒可以通过usb设备进行传播,当usb设备连 接到主机时,可能会被感染。 例如:蠕虫病毒 3.拍摄快照。 可以让虚拟机还原到拍摄快照时候状态。 4.使用vmware进行恶意代码分析...

2019-03-02 09:35:31 436

原创 学习笔记-第一章 恶意代码分析实战

第一章从可执行文件提取有用信息的多种方法,包括以下技术: 1.使用反病毒软件来确认程序样本的恶意性; 2.使用哈希来识别恶意代码; 3.从文件的字符串列表,函数和文件头信息中发掘有用信息。 字符串包括 ASCII 和Unicode俩种编码 加壳 混淆之后的程序字符串可供打印的字符串会减少。 链接库与函数 通过导入表可以帮助我们了解链接那些代码库1.6.2 常见的dll程序 K...

2019-03-01 21:55:04 1302

转载 逆向破解so学习路程2

# 使用Android killer打开生成的app,然后在对应生成的lib目录里面,使用ida打开armeabi-v7a libJniTest.so学习来自 链接 - 使用elf for arm打开so,之后确定,可以在function name中搜 java,会搜到so里面的部分方法。还可以使用shitf+f12 笔记本需要的加fn搜索字符串 点击进去之后然后view-&gt;o...

2018-09-03 22:21:49 2223

转载 逆向破解so学习路程1

之前有简单的接触逆向破解,没有过多的记录。这些东西还是需要记录下来,以便之后翻阅来回想起,所以记录触坑历程。学习来自 链接首先是编写so 在java文件里面新建一个java类来加载java native interface 例如 public class myJNI { static { System.loadLi...

2018-09-03 22:00:48 715

原创 Android api的调用学习http/post

学习记录学习了调用api接口进行数据传输,演示的例子是调用百度的情感倾向分析读说明文档有sdk和api俩种调用方式,前者会把程序越做越大。api调用方式需要访问网络。文档中的url参数就是url后面的东东,用?开头,然后需要什么加什么,格式是 xx=8888 多个用&amp;符号连接header是post的headerbody在我这里是发送的到服务器的数据实现起来只需要访问ap...

2018-07-31 14:28:49 6564

原创 ESP8266物联网远距离控制实现

ESP8266物联网远距离控制实现转载请注明出处!重要的事情放在前面源码在GitHub上面欢迎issue,如果可以的话Star一下也是表示对作者的支持,有很多不足,希望可以得到指教。https://github.com/yesbutter/ESP8266-Data-Transmission 不多说废话,开门见山。实现功能。单片机通过轮询查询服务器端的指定文件夹下的内容,...

2018-06-20 15:16:29 10603 11

原创 Android 定位的实现

安卓定位可以通过使用GPS或者通过network获取地址,俩个都需要增加获取位置的权限!需要在AndroidManifest里面增加权限!分别介绍一下学习心得!//ACCESS_FINE_LOCATION:允许APP访问精确地理位置。&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"...

2018-02-07 22:05:39 11703 7

原创 构造方法那点事!

Java构造方法测试class Child extends Father {//子类 public int ID = 0; public Child() { super();//默认是一定会调用父类的构造方法的,不可以不调用 ID=1;//这个是自己的ID,父类的ID可以通过super来访问 System.out.prin

2018-02-02 13:41:24 243

原创 大数的快速求余算法

大数的求余,相加,相减算法A plus B+: Now give you two positive integers, A, B, and C. Please count A plus B, then modulo C.InputInput will consist of multiple problem instances. The first line of the in

2018-01-06 10:15:27 8497

原创 线性表的链式存储基本操作

线性表链式存储由于顺序表的存储特点是用物理上的相邻实现了逻辑上的相邻。它要求用连续的存储单元顺序存储线性表中的各元素。因此,对顺序表插入,删除时需要通过移动数据元素来实现,影响了运行效率。下面来介绍一下线性表的链式存储结构:它不需要用地址连续的存储单元来实现,因为它不需要要求逻辑上相邻的俩个数据元素物理上也相邻,它式通过“链”来表示数据元素的逻辑关系,因此对线性表的插入,删除不需要移动数据元素。1

2018-01-02 21:22:45 1186

原创 线性表顺序存储基本操作

线性表数据结构的运算是定义在逻辑结构层次上的,而运算的具体实现是建立在存储结构上的,下面是线性表的基本运算逻辑的一部分。(1)线性表的初始化:Init_List(L),操作结果是构造一个空的线性表。(2)求线性表的长度:Length_List(L),操作结果是返回线性表中所含元素的个数。(3)取表元:Get_List(L,i),表L存在且1<=i<=Length_List(L),操作结果返回线

2018-01-02 19:20:52 727

原创 汉诺塔

汉诺塔汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。代码实现:void move(char sour,char dest){ printf

2018-01-02 19:15:04 459

原创 斐波那契数列

数据结构对斐波那契数列的学习小心得

2018-01-02 19:12:18 389

原创 Android Intent跳转学习

- 打电话测试:用一个按钮来实现跳转到拨打号码页面。ButtonCall=(Button)findViewById(R.id.iCall);//找到按钮ButtonCall.setOnClickListener(new View.OnClickListener(){//设置监听事件@Override public void onClick(View v){//点击事件 Uri u

2017-12-31 11:15:46 255

原创 PAT OJ.社交网络图中结点的“重要性”计算

PAT. 社交网络图中结点的“重要性”计算描述 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(

2017-12-06 17:24:22 826

原创 HBUOJ人见人爱A^B

HBUOJ.人见人爱A^B描述求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”输入输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。 输出对于每个测试实例,请输出ABAB的最后三位表示的整数,每个输出占一行。样例输入1 17 73 70 0样例输出1543187h

2017-12-02 12:37:12 333

原创 HBUOJ.分割排序

HBUOJ.分割排序描述 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。输入输入包含多组测试数据。每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

2017-12-02 12:10:57 672 2

原创 HBUOJ. 破译邮件

HBUOJ. 破译邮件描述 小明收到了一封很奇怪的邮件,里面全是一些符号和数字,但是信上面给出了破译方法,具体方法如下:(1)将1变为‘A’,2变为‘B’,...,26变为‘Z’;(2)将‘#’变为一个空格;(3)忽略‘-’,原始信件中‘-’仅仅用来分割数字。现请你编程帮助小明破译这封邮件。输入输入的第一行为一个整数C,表示测试数据的组数。接下来C行,每行输入一个待破译的字符串,字符串中

2017-12-02 12:02:03 2285

转载 PAT 1073. 多选题常见计分法

PAT1073. 多选题常见计分法描述 批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输入输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多选题

2017-11-04 16:47:08 817

原创 PAT 1075. 链表元素分类

PAT 1075. 链表元素分类

2017-11-04 16:03:29 344

原创 PAT 1074. 宇宙无敌加法器

PAT 1074. 宇宙无敌加法器(20)描述 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表,例如“……0527”就表示最低位是7进制数、第2位是2进制数、第3位是5进制数、第4位是10进制数,等等。每一位的进制d或者是0(表示十进制)、或者是[2,9

2017-11-04 11:28:15 870

原创 PAT 1072. 开学寄语

PAT 1072. 开学寄语(20)描述 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其QQ,封其电脑,夺其手机,收其ipad,断其wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!![这里写图片描述](http://img.blog.csdn.net/20171104111018031?watermark/2/text

2017-11-04 11:15:57 480

原创 PAT 1071.小赌怡情

PAT1071.小赌怡情(15)描述 常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注t个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家t个筹码;否则扣除玩家t个筹码。注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。输入输入在第一行给出2个正整数T和K(<=100)

2017-11-04 11:06:50 437

原创 大数计算

A+B ProblemIV描述 acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。

2017-10-17 10:57:54 443

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除