Java .class文件保护原理 首先将编译出来的.class文件进行加密,加密算法自选。然后使用jvm进行解密,并且执行。加密例子没有采用加密算法,只在.class文件后面追加了几个字节的标志。BYTE EncryptFlag[10] = { 0x73, 0x75, 0x70, 0x65, 0x72, 0x5F, 0x6D, 0x69, 0x6D, 0x69 };#include #include BY
Linux--更新(update/upgrade) & 更新源 类似于windows的自动更新,linux也有相应的更新方式。 更新命令:$sudo apt-get update #更新$sudo apt-get upgrade #升级,需要用update更新完才能upgrade更详细的,请 $man apt-get 此时会从更新源下载并安装。记录更新源的文件:/etc/apt/sources.list默认sources
Python学习记录 1.输入和输出inputAndprint.py2.String相关String.py3.列表和元组listAndtuple.py4.条件判断ConditionJudgement.py5.循环forAndwhile.py6.字典和集合dictAndset.py7.函数function.py8.切片section.
指针数组和数组指针 这两个一直很容易弄混,原因在于运算符的优先级不知道。表示一个数组的[]和表示一个函数的()具有相同的优先级,这个优先级要高于间接运算符*的优先级。小技巧区分:注意后面的两个字,比如指针数组,它首先是数组,然后里面的元素是指针int * demo[10]; //这个便是具有10个元素的指针数组,数组元素中存放的是指向int类型的指针int (* demo)[10];
PBOC/EMV中TLV的构造和解析 BER-TLV 数据对象编码根据 ISO/IEC 8825 的定义,一个 BER-TLV 数据对象包括 2-3 个连续数据域:l 标签域( Tag)包括一个或多个连续字节。它定义一种类别、类型和一个数字。本规范规定的数据对象的标签域用一个或二个字节编码。l 长度域( Length)包括一个或多个连续字节。它定义了接下来一个域的长度。本规范规定的数据对象的长度用一个、或二
Combo Box CBN_SELCHANGE事件 当Combo Box需要自动选择默认时,加入如下代码: CWnd *myWnd = GetDlgItem(IDC_COMBO_ALGORITHM); SendMessage(WM_COMMAND,MAKEWPARAM(IDC_COMBO_ALGORITHM,CBN_SELCHANGE),(LPARAM)myWnd->m_hWnd);
32/64位跨平台反汇编引擎BeaEngine使用简介 作 者: stanford时 间: 2013-08-15,23:29:45链 接: http://bbs.pediy.com/showthread.php?t=1773011.Preface最近在写一个ARK工具(完成之后会开源,且保证不是半成品),不可避免的会用到反汇编引擎,因为要同时支持32/64-Bit平台,所以找到了一个同时支持i386/AMD64且跨平台的反汇编引擎B
Win7 CreateRemoteThread 另类使用方法 同样的代码,在XP下面随便你怎么整,WIN7的话是相当纠结的,具体哪些错误就不解释了 ~~ gg点了二十多页,在韩国某大牛的博客上总算找到一点思路(虽然看不懂韩文,但代码还算勉强看得懂吧) 原来是要用动态调用ntdll.dll >> NtCreateRemoteThreadEx ,于是over~~ 说明:1、InjectDll.exe 是
DOM解析XML XML可以作为一种的简单数据存储。DOM解析,是将XML中的数据组织成一棵树,树的一个一个节点就是XML文档中的数据。DOM解析XML流程:1.建立一个解析器工厂,将来创建解析器。2.创建XML解析器。3.创建DOM文档对象,设置doc路径。4.使用DOM文档对象获取节点列表。5.将节点列表中的每一个子节点分配给一个节点对象。6.获取节点的内容。XML信息:
函数的工作原理 函数的工作借助于栈。栈在内存中是一块特殊的存储空间,它的存储原则是“先进后出”,最先被存储的数据最后被释放。esp被称为栈顶指针,ebp称为栈底指针,通过这两个指针寄存器保存当前栈的起始地址与结束地址。esp与ebp之间所构成的空间便成为栈帧。通常,在VC++中,栈帧中可以寻址的数据有局部变量、函数返回地址、函数参数等。不同的两次函数调用,所形成的栈帧也不同。当由一个函数进入到
X86反汇编简要说明 一、抽象在经典的计算机体系结构中,往往将计算机系统表示为一些抽象的层次,来隐藏其实现细节。机器码: 机器码由操作码(opcode)组成,操作码是一些十六进制形式的数字,用于告诉处理器你想要他做什么。低级语言: 低级语言是计算机体系结构指令集的人类易读的版本,注意是汇编语言。恶意代码分析师使用这一语言。高级语言: 大部分程序员使用高级语言。高级语言对机器层做了很强的抽象,
DLL注入与卸载 DLL注入可用于编写外挂和病毒不易发现。void CInjectDllToolDlg::StartInject(char *path, int pid){ int pathLen = strlen(path)+sizeof(char);//获取dll目录大小 HANDLE hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); if (!
VS2013MFC多字节编译出错 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(369,5): error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the proj
获取进程的基址 直接上我写KingDom Rush外挂的代码,一开始想法是直接在内存中定位到关键汇编代码,直接在内存中改写就可以了。发现基址和定位的关键汇编地址没有任何联系,可能是随机分配的缘故吧。不过还是纪录一下这种方法#include#include#include#includeusing namespace std;bool changeAsm(HANDLE mproc, DWORD
5款免费在线软件行为分析(在线沙盘) 1.Anubis是一个提供可控环境来执行用户提交的二进制文件的动态恶意软件分析平台。该系统通过监视关键的Windows API和系统服务调用、跟踪网络数据流、记录网络通讯,实现对二进制文件的分析,并生成综合分析报告。由于它通过公开的网络接口和很多安全组织、反病毒公司获得恶意程序样本,用户群广泛,所以收集到的样品体现了互联网上广泛而多样的恶意程序。相对于Norman的在线沙盒,来自奥地利的Anu
异常处理回调函数 SEH异常处理回调函数的参数定义如下:_Handlerproc{ _lpExceptionRecord, //指向一个EXCEPTION_RECORD结构 _lpSEH, //指向EXCEPTION_REGISTRATION结构地址 _lpContext, //指向CONTEXT结构 _lpDispatcherContext}返回值:Excepti
SEH相关数据结构(续) 继上一篇SEH相关数据结构,还有三个结构体很重要。它们是EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT当一个异常发生时,操作系统向引起异常的线程的堆栈里压入EXCEPTION_POINTERS结构:typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord;
SEH相关数据结构 TEB结构TEB(Thread Environment Block,线程环境块)在Windows9X系列中称为TIB(Thread Information Block,线程信息块),它记录着线程的重要信息。每一个线程对应一个TEB结构,在Windows2000 DDK中定义为:typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATI
异常处理的基本过程 看看一个程序发生错误后,Windows是如何结合SEH机制进行处理的。1.因为有多种异常,系统首先判断异常是否应发送给目标程序,如果应该发送,并且目标程序正处于被调试状态,则系统挂起程序,填写如下结构:typedef struct _EXCEPTION_DEBUG_INFO { EXCEPTION_RECORD ExceptionRecord; DWORD dwFirstCha