学习笔记
js0huang
这个作者很懒,什么都没留下…
展开
-
软件代码数字签名基本原理
在通过精美的包装盒销售软件的时代,大家使用什么防伪标志等来让用户识别什么是正版软件。但在当今的网络时代,有利的一面是软件开发商可以通过网络不受时间、地域的限制而快速发行软件,但不利的一面,则是用户无法辨认软件的真伪,根本无法确认软件代码的真实身份。在没有间谍软件和木马程序之前,大家可能还都信任某个软件就是软件中声称的开发商开发的软件,但是在今天就不应该这样认为了,互联网的匿名性使得用户根本无法确认转载 2015-04-23 19:08:14 · 835 阅读 · 0 评论 -
转 ELF节区 elf32_Shdr
什么是节区? 节区保存着用于不同目的的数据,从链接角度看,包括指令、数据、符号表和重定位信息等等。这些数据可能被其他部分所使用.因为不同节中数据的用途不同,节也被分成不同的类型。每个类型的节区都有自己组织数据方式,说白了就是数据结构不一样.另外每一个节区在节区头部表中都有一个条目用来描述节的一些属性信息,具体信息后面会提到什么是节区头部表? 包含了描述节区的信息,每个节区在这个表中都有...转载 2018-05-16 11:08:18 · 1069 阅读 · 0 评论 -
ELF文件头结构
转自 https://blog.csdn.net/tangyuesb/article/details/54630787ELF文件头结构定义在“/usr/include/elf.h”头文件下,ELF文件有32位版本和64位版本,故其头文件结构也有32位结构和64位结构,分别定义为Elf32_Ehdr和Elf64_Ehdr。两种版本文件内容一样,只是有些成员的大小不一样。以下是32位版本的文件头结构E...转载 2018-05-16 11:04:24 · 11493 阅读 · 0 评论 -
转 IDA Pro使用技巧及大杂烩
IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window)。IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块。在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址。函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复。选择菜单Debugger下的St...转载 2018-05-17 11:27:46 · 4479 阅读 · 4 评论 -
梯度下降(Gradient Descent)小结
转自 : https://www.cnblogs.com/pinard/p/5970503.html在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量转载 2018-03-14 16:26:18 · 365 阅读 · 0 评论 -
C++ Primer 学习记录
1. 变量和基本类型初始化不等于赋值,初始化是建变量并赋予初始值,但是赋值是擦出对象的值并使用新 值代替。注意C++拷贝构造函数和复制构造函数。 对unsigned类型赋值,编译器会调整越界值使其满足要求。而对有符号型数,则依据编 译器不同而不同 除非特别说明,在全局作用域声明的const变量是定义该对象的文件的局部变量,如果 要在其他文件中可以访问,必须如下定义 externconstint j...原创 2018-03-03 12:58:14 · 218 阅读 · 0 评论 -
VC++深入详解——19章动态链接库
章19 动态链接库dll源文件中的函数要使用 _declspec(dllexport) 导出。同时,在引用该dll中的函数时,要 使用_declspec(dllimport)。在调用dll的工程中必须加载该 dll的引入库文件(.lib文件),同时,要将dll文件放在工程可 以引用到的目录中。可以编写dll的 .h文件。然后将函数的导出声明加入其中提供给客户端使用。可以导出一个类,...原创 2018-03-04 11:15:52 · 237 阅读 · 0 评论 -
一个故事讲完https
1 序言今天来聊一聊https 安全传输的原理。在开始之前,我们来虚构两个人物, 一个是位于中国的张大胖(怎么又是你?!), 还有一个是位于米国的Bill (怎么还是你?!)。这俩哥们隔着千山万水,通过网络联系上了, 两个人臭味相投,聊得火热。此时正值米国大选, 张大胖亲切地“致电”Bill, 对米国总统大选的情况表转载 2018-03-04 11:23:59 · 242 阅读 · 1 评论 -
加密与解密——软件保护方式
软件保护方式:壳:外壳程序先于原有程序运行,在内存中解密还原原始程序后恢复原始程序的执行。 压缩壳 加密壳 虚拟机保护:将已知程序代码翻译虚拟机自定义的字节码,然后再虚拟机中执行程序。给跟踪程序带来难度,但是增加了程序的体积,同时降低了程序的运行效率脱壳过程:保存入口参数 获取API地址解密区段并还原 重建IAT表 重定位项处理 HOOKAPI 跳转至OEP查原创 2018-03-04 11:40:40 · 1470 阅读 · 0 评论 -
Linux - 进程空间
3951一 进程空间分布概述 对于一个进程,其空间分布如下图所示: 程序段(Text):程序代码在内存中的映射,存放函数体的二进制代码。初始化过的数据(Data):在程序运行初已经对变量进行初始化的数据。未初始转载 2018-03-05 10:46:58 · 375 阅读 · 0 评论 -
http 协议详解
本文作者:Anthem & hl0rey文章来源:RTIS 雏鹰进阶之路 小伙伴 Anthem 第一周的总结,hl0rey 对其进行了扩展,更多小伙伴的总结尽在知识星球 HTTP 协议,即超文本传输协议 (Hypertext transfer protocol)。 是一种详细规定了浏览器和万维网 (WWW = World Wide Web) 服务器之间互相通信的规则,通转载 2018-03-13 09:43:40 · 696 阅读 · 0 评论 -
什么是 IAT(一)
转自:信安之路IAT 三连之什么是 IAT?原创 2018-02-26 x-encounter 信安之路IAT 的全称是 ImportAddress Table。在可执行文件中使用其他 DLL 可执行文件的代码或数据,称为导入或者输入,当 PE 文件载入内存时,windows 加载器会定位所有导入的函数或数据将定位到的内容填写至可执行文件的某个位置供其使用,而这个操作是需要借助导入表来完成的。导入...转载 2018-03-13 13:08:35 · 10051 阅读 · 1 评论 -
例解 autoconf 和 automake 生成 Makefile 文件
转自https://www.ibm.com/developerworks/cn/linux/l-makefile/引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百转载 2018-03-26 14:30:47 · 147 阅读 · 0 评论 -
以太坊资料汇总
最近一段时间以来,对区块链的底层研究和基于区块链的应用开发已经越来越火热了。机缘巧合,目前我也在进行区块链方面的开发,在之后的博客中,我会和大家一起分享区块链开发中的酸甜苦辣。今天我先来对收藏区块链-以太坊中一些不错的网站、资料做一个汇总,作为入门和进阶,这些资料都是很不错的,所以来和大家共享。精通比特币Github英文版地址:https://github.com/bitcoinbook/bitc转载 2018-05-08 13:23:32 · 412 阅读 · 0 评论 -
XPath遇到br标签无法获取到完整数据的解决办法
这里写自定义目录标题XPath与``标签XPath与<br>标签当使用xpath获取html页面元素时,如果某个element中包含有<br>标签,使用xpath将无法获取到完整的数据。因为br标签即可以表示数据的开始,也可以表示数据的结束。那么这个时候可以使用descendant-or-self::text()来获取完整数据。descendant-or-self::...原创 2019-12-01 11:15:50 · 10684 阅读 · 6 评论 -
Remove ASCI escap sequenc
result = "ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m"reaesc = re.compile(r'\x1b[^m]*m')strip_result = reaesc.sub('', result)原创 2019-04-30 10:28:33 · 227 阅读 · 0 评论 -
vim/vi 命令
vi / vim 删除以及其它命令 删除一行:dd 删除一个单词/光标之后的单词剩余部分:dw 删除当前字符:x 光标之后的该行部分:d$ 文本删除dd 删除一行d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行dw 删除以当前字符开始的一个字转载 2013-12-09 13:14:50 · 542 阅读 · 0 评论 -
漫画 | 趣谈:什么是动态规划?
转载腾讯课堂百家号06-2010:39————————————题目:有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以简写成 1,1,1,1,1,1,1,1,1,1。转载 2018-03-04 11:18:49 · 280 阅读 · 0 评论 -
从虚拟机硬盘文件.vmdk恢复数据
今天在虚拟机下开发遇到了点麻烦,由于电脑配置比较低,使用VMware有些不流畅,于是笔者习惯性的将虚拟机reset(重启)了。结果,再次进入虚拟机后,VMWare Tools 貌似罢工了!一直停留在 “Switching to guest configuration:”这个提示处。虚拟机里面还有开发代码,没有备份啊,怎么办? 于是到谷歌上搜索“Switching to guest原创 2014-04-03 00:03:41 · 16785 阅读 · 1 评论 -
windows7 x64 Scrapy安装
最近准备自己写一个爬虫玩玩,原创 2014-08-28 19:21:33 · 712 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2014-10-10 16:46:11 · 490 阅读 · 0 评论 -
C++ explicit关键字分析
C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:```class MyClass { public: MyClass( int nu原创 2015-04-21 10:21:40 · 473 阅读 · 0 评论 -
Linux搜索命令 which find locate
Linux搜索命令 which whereis locate findLinux搜索命令 which whereis locate findwhichwhereislocatefindLinux系统中,有几种用于搜索文件和指令的命令which find locate,瞎买年分别谈谈他们各自的用法和区别。1. whichwhich 用于搜寻当前用户PATH中的程序指令: 2. where原创 2015-05-18 14:04:10 · 877 阅读 · 0 评论 -
5种最常用的开源协议及它们的适用范围(转)
本文,我们来看5种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。BSD开源协议BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:如果再发布的转载 2015-03-30 12:57:20 · 2178 阅读 · 0 评论 -
并查集(Union-Find)算法介绍
本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。转载 2014-10-11 15:44:32 · 564 阅读 · 0 评论 -
CatchConv 分析
CatchConv完成的工作主要有:VEX IR 到 STP表达式的转换污点分析整数类型推理关于”IR到STP表达式”以及“污点分析”的部分暂时不予讨论 。整数类型推理的部分,主要思想是:将程序中的变量位置标记为 signed unsigned unknown contradictory 四种 signed 表示这块地址的操作一直是有符号的,unsigned则是无符号的,unknown则原创 2015-03-30 18:37:23 · 658 阅读 · 0 评论 -
(翻译)Bytecode for the Dalvik VM -General Design
Bytecode for the Dalvik VM -General Design以下所述的machine model和调用约定采用了一般架构和C语言调用约定来表述: Dalvi虚拟机是基于寄存器的,函数帧在创建时有固定的大小,每个帧包含了若干个寄存器(由函数指定)以及一些执行时所需要的附加数据,例如(但不局限于)程序计数器pc,以及包含该方法的一个.dex文件引用寄存器位宽为32位,使用两翻译 2015-05-18 18:36:26 · 1095 阅读 · 0 评论 -
Shellcode中ret调用和call调用函数区别
ShellShellcode中ret调用和call调用函数区别在编写shellcode时,我们通常会使用call或者ret来调用执行某些系统函数或者我们自己编写的函数代码。下面以一个调用calc.exe的shellcode来说明一下它们的使用方式执行calc.exe的C语言代码: 1 LoadLibrary("kernel32.dll"); 2 WinExec("calc.exe",原创 2015-05-22 18:53:32 · 3009 阅读 · 0 评论 -
Intel and AT&amp;amp;T Syntax
点击打开链接转载 2018-03-08 13:38:07 · 179 阅读 · 0 评论 -
.bash_profile”和“.bashrc”区别的总结
转自 http://blog.csdn.net/sch0120/article/details/70256318bash的startup文件Linux shell是用户与Linux系统进行交互的媒介,而bash作为目前Linux系统中最常用的shell,它支持的startup文件也并不单一,甚至容易让人感到费解。本文以CentOS7系统为例,对bash的startup文件进行一些必要的梳理和总结。...转载 2018-03-08 14:16:21 · 2482 阅读 · 0 评论 -
老外总结的中国人写英语文章最常犯的错误总结
原文来自小木虫论坛。The Most Common Habitsfrom more than 200 English Paperswritten by Graduate ChineseEngineering StudentsBy Felicia BrittmanThis paper presents some of the most common转载 2018-03-04 10:56:34 · 11324 阅读 · 1 评论