摘要: 通常为了简洁及防止NULL产生,ShellCode中会使用hash加密。而也有些时候,我们直接使用加密技术去除NULL:#!/usr/bin/env pythonimport os,sys,string#check the parameterif len(sys.argv) != 2: print 'UseAge: Encoder filename' sys.exit(1) # is file existsfilepath = os.getcwd() + '\\' + sys.argv[1]if not os.path.exists(filepath): pri 阅读全文
posted @ 2012-05-21 10:59 little evil 阅读(937) 评论(0) 推荐(0) 编辑
摘要: 上次为了写一个U盘病毒,需要用到格盘的函数,百度了也谷歌了,却没有一个可以直接调用的函数。简化了网上很流传的一个版本://///////////////////Format.h///////////////////#define FMIFS_FLOPPY 0x8typedef enum { PROGRESS, DONEWITHSTRUCTURE, UNKNOWN2, UNKNOWN3, UNKNOWN4, UNKNOWN5, INSUFFICIENTRIGHTS, UNKNOWN... 阅读全文
posted @ 2012-05-21 10:46 little evil 阅读(427) 评论(1) 推荐(0) 编辑
摘要: 远程线程插入技术,挺常见而实用的东西。只是这个远程线程插入函数被很多杀软作为重点监视对象,所以不知道这东西以后还能用不。/////////////////////////NotDead.h//////////////////////#include <windows.h>#include <TLHELP32.H>TCHAR exepath[MAX_PATH]={0x00};//参数结构typedef struct _remotepara{ DWORD pWaitForSingleObject; DWORD pOpenProcess; DWORD pWinEx... 阅读全文
posted @ 2012-05-21 10:41 little evil 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 最近做培训,由于在同一局域网,本来打算用飞秋的,但由于飞秋是广播包传输数据,再加上学校机房的网络好像出了点问题,所以一些师弟师妹收不到消息。挺悲催的,然后就写了这样一个小工具。虽然已经能使用算法和数据结构,自以为思路也应该很清晰了,却发现做起来还是有点难。后来才发现,我才做到一半:程序=算法+数据结构+方法(思想);软件=程序+软件工程。我还只是能写程序,所以写一个大一点的软件有时就会思路混乱,看来又要去研究下软件工程了。纪念那个上午和下午~客户端:///////////////////////////////RichEdit.h:客户端的某个头文件,用于向RicEdit控件写入数据///// 阅读全文
posted @ 2012-05-21 10:34 little evil 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 这几天给师弟们辅导socket编程,虽然理论方面都感觉不会太难,但编程部分好像很难理解。所以写了一个类,参考了python的socket编程方法,把常用函数封装成一个头文件,力求简洁。这样果然就好多了,呵呵。挺高兴的,纪念下。/////////////////////////////////////////NewSocket.h///////////////////////////////////////#pragma once#include <winsock2.h>#pragma comment(lib,"ws2_32")//Socket信息结构struct 阅读全文
posted @ 2012-05-21 10:11 little evil 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 说明:AppendStrData(char *):向RichEdit添加字符串 AppendSectionData(char *,RGB):向RichEdit添加有颜色的字符串导入表:void GetImportTable(){ AppendSectionData("\n导入表:\r\n",RGB(00,0xBB,0)); if (pNtHeader->OptionalHeader.DataDirectory[1].VirtualAddress){ pImportDes=(IMAGE_IMPORT_DESCRIPTOR *)((BYTE *)lpBase + RV.. 阅读全文
posted @ 2012-05-20 11:52 little evil 阅读(860) 评论(1) 推荐(0) 编辑
摘要: 测试平台: Windows xp测试工具: OllyDbg挖掘过程: 1.根据pls格式构造超长文件路径,发现程序异常崩溃 2.查找程序崩溃点: A.用OD加载主程序,bp GetOpenFileNameA,打开pls文件,开始跟踪 B.通过一系列分析和跟踪,确定最终出现异常的call C.仔细分析该函数: 1. 该函数分配了0xAA28的变量空间,接着push了0x10字节的寄存器数据。此时,esp距此函数返回地址:0xAA28+0x10=0xAA38字节 2. 在函数读取pls文件里的文件路径时,将从esp+0x30开始保存读取到的文件路径... 阅读全文
posted @ 2012-05-20 11:11 little evil 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 测试平台: Windows xp测试工具: OllyDBG挖掘过程: 1、根据cue文件格式构造超长文件路径字符串进行测试,发现程序崩溃。 2、找出溢出点: A、bp CreateFileA,跟踪打开的测试文件: B、返回到用户代码,发现程序根据不同的扩展名跳到不同的处理函数: C、来到cue文件的处理函数: D、跟进此函数,发现程序开始按相关字段解析cue文件格式:(仅仅解析,未发现危险函数) E、解析完成后,程序尝试调用自定义函数打开指定的文件,OD报错: G、发现此函数会根据读取的文件的扩展名调用相关处理... 阅读全文
posted @ 2012-05-20 11:04 little evil 阅读(768) 评论(0) 推荐(0) 编辑