经济学原理(4)劳动力市场
1. 生产要素生产的基础要素主要是劳动、土地和资本。 1.1. 劳动力市场 劳动力需求:企业对劳动力的需求取决于边际产出和劳动力价格的交汇 劳动力供给:机会成本决定供给,在全球化的世界里,还要考虑移民带来的变化 需求和供给决定了劳动力市场,因为劳动力市场的垄断是极其少见的。 1.2. 土地和资本土地和资本作为另外的生产要素,会影响劳动力市场。 2. 收入差异 补偿性差异:工作的舒适性、安全性差异带来的影响 人力资本:在人的能力上进行的资本投入如教育 能力、努力和机遇 其他:教育的信号效应、超级明星效应、政府政策等 3. 劳动市场歧视供给和需求曲线会消除歧视,但是顾客偏好和政府政策可能会加强歧视 4. 收入不平等与贫困4.1. 收入不平等与贫困的衡量指标贫困率等指标可能会由于实物转移支付、收入周期等因素而出现偏差。 4.2. 收入再分配的哲学理念 功利主义:目标是社会效益总和最大化 自由主义:提高最差的人的福利 自由至上主义:只保障机会平等,不进行额外的再分配 4.3. 减少贫困的方法 最低工资法 福利 负所得税:对收入低于一定水平的人进行补贴 实物转移支付:用实物如食物、衣...
基于深度学习的图像处理(4)数据集
1. 数据集一个目标检测的深度学习模型,可以接受原始图片的输入,将目标标注后输出。 在训练模型时,我们要提供输入和输出,称为学习。而模型训练完后,我们提供输入,由模型自行输出,则称为推理或者泛化。这里的输入和输出就是数据集。 巧妇难为无米之炊,由此可见,在深度学习中,数据集扮演着至关重要的角色,其质量会大大影响模型的质量。 2. 数据集集合网站https://paperswithcode.com(该网站已经失效,继任者:https://huggingface.co/ )网站收录了很多开源代码、数据集和论文。在这里可以看到各个数据集的数据规模、下载次数和Like次数等,由此可以评估各个数据集的受欢迎程度。 3. VOC数据集VOC全称The Pascal Visual Object Classes Challenge,是一个竞赛,从2005年一直举办到2012年,每年一届,是之前比较流行的数据集。2014年之后,COCO数据集则替代了VOC数据集,成为主流的目标检测数据集选择。 VOC的官方网站地址为:https://www.robots.ox.ac.uk/~vgg/proje...
爬虫的一些QA
1. Chromium相关1.1. 解决Chromium “缺少 Google API 密钥”问题每次打开Chromium,地址栏下方就会提示“缺少Google API密钥,因此Chromium的部分功能将无法使用”。 1.1.1. 解决方法一:屏蔽提示(不需要登录Google)设置环境变量,打开windows的cmd命令提示符,依次输入以下命令: 123setx GOOGLE_API_KEY "no"setx GOOGLE_DEFAULT_CLIENT_ID "no"setx GOOGLE_DEFAULT_CLIENT_SECRET "no" 可能需要重启电脑。 1.1.2. 解决方法二:使用公开KEY(登录公开Google)cmd 命令提示符,依次输入以下命令: 123setx GOOGLE_API_KEY AIzaSyDCNWofwOkYgeS3aBnd901sIJqSS4p3nKcsetx GOOGLE_DEFAULT_CLIENT_ID 752805503192-gigd4quq46757vjupq4rv5og...
反爬与对抗
1. 针对chromedriver的检测与绕过1.1. UserAgent检测无头模式下的UA会带有HeadlessChrome关键字,例如Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/70.0.3521.2 Safari/537.361,因此可以检查UA中的关键字。 1234if (/HeadlessChrome/.test(navigator.userAgent)) { // headless...}//修改UserAgent即可绕过 1.2. Webdriver检测无头模式下navigator.webdriver为true,因此可以进行如下检测。 12345678// Webdriver Testif (navigator.webdriver) { // headless...}//重新设置该属性即可绕过Object.definePr...
漏洞挖掘方法
1. 概述1.1. 图灵机停机问题程序存在不可计算性,因此理论上无法彻底消灭软件中存在的缺陷(Bug和漏洞)。 1.2. 白盒测试:源代码审计可利用以下工具进行源代码审计: Fortify:在编译阶段扫描若干种安全风险 Rough Auditing Tool for Security:用于分析C/C++语言的语法树,寻找存在潜在安全问题的函数调用 Bugs Errors And Mistakes:由IBM研究院研发,使用数据流分析的方法分析源代码的所有可执行路径,以检测代码中潜在的bug SLAM:检测驱动中的bug Flaw Finder:用Python语言开发的代码分析工具 Prexis:可以审计多种语言的源代码,审计的漏洞类型超过30种 Coverity:提高软件质量的源代码静态分析工具 1.3. 黑盒测试:FuzzFuzz使用带有攻击性的畸形数据来触发各种类型的漏洞(不能exploit),可使用以下工具: SPIKE:针对网络协议的模糊测试工具,使用了基于数据块的Fuzz理论 beSTORM:利用了模糊测试技术来实现针对网络协议的安全测试 2. 文件类型...
内存保护机制与绕过
1. 内存保护机制概述1.1. 漏洞起源冯诺依曼体系未对代码和数据作区分,现代漏洞大多基于这一点,导致用户数据被当作代码来执行。 1.2. 内存保护机制 GS编译技术,在函数返回地址之前加入了Security Cookie,函数返回前首先检测Security Cookie是否被覆盖,对抗栈溢出 SafeSEH,增加了对SEH的安全校验机制,对抗SEH覆盖 DEP(数据执行保护),将数据部分标示为不可执行,阻止栈、堆和数据节中攻击代码的执行 ASLR(加载地址随机),随机化可执行文件和动态链接库文件的加载地址,对抗溢出 SEHOP(SEH覆写保护),将SEH的保护提升到系统级别,对抗SEH溢出 在堆中加入了Heap Cookie、Safe Unlinking等一系列的安全机制,对抗堆溢出 1.3. 内存保护机制的对抗 目的 保护技术 覆盖返回地址 通过GS保护 覆盖SEH链 通过SafeSEH、SEHOP保护 覆盖本地变量 可能被VC编译器经过重新整理和优化 覆盖空闲堆双向链表 通过safe unlinking保护 覆盖堆块头 XP下使用8位的Heade...
ROP
1. 概述1.1. 程序流劫持(Control Flow Hijack)通过程序流劫持(如栈溢出,格式化字符串攻击和堆溢出),攻击者可以控制PC指针从而执行目标代码。 1.2. 系统防御为了应对程序流劫持,系统防御者也提出了各种防御方法,最常见的方法有DEP(堆栈不可执行),ASLR(内存地址随机化),Stack Protector(栈保护)等。 1.3. ROP的概念ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过现代操作系统的各种通用防御。 2. 准备工作2.1. 设置coredump可以防止出现程序在GDB调试环境下的内存地址与实际运行环境下内存地址不同的情况。 12345# 开启coredumpulimit -c unlimitedsudo sh -c 'echo "/tmp/core.%t" > /proc/sys/kernel/core_pattern'# 调试coredump文件,第一个xxx为可执行文件名,第二个xxx为coredump文件名...
漏洞利用原理
1. 基础知识以下知识均为逆向基础知识,此处做个记录,不再赘述。 漏洞概述 BUG与漏洞 漏洞挖掘 -> 漏洞分析(POC) -> 漏洞利用(EXP) 漏洞公布:CVE、CERT 二进制文件格式 PE格式 虚拟内存(4GB进程空间) PE格式与虚拟内存的映射 工具 OD、SoftICE(Compuware SoftICE Driver Suite 驱动套件)、WinDbg IDA Pro UE、010 Editor、Winhex VMWare Python 栈溢出 内存布局(代码、数据、栈、堆等) 函数调用与栈帧、函数调用约定 缓冲区溢出覆盖变量、EBP、返回地址(可以利用返回地址执行栈中植入的代码) 使用JMP ESP(使用kernel32或者user32里面的代码,地址一般情况下稳定)作为跳转,以防栈区地址变化 2. shellcode shellcode为功能代码(payload) exploit为攻击代码 2.1. 缓冲区的组织 缓冲区组成(shellcode、nop、跳转地址) 跳板 jmp esp(mov eax,esp ; jmp ...
会计学基础
1. 会计学基础1.1. 会计是什么 会计是一种商业语言,是为了记录以及传播商业活动,商业活动的本质是价值交换 会计信息的要素:主体、时间、金额 复式记账:同时记录资金的来源和去向,即借贷记账法 1.2. 会计恒等式一 资产(企业拥有或者控制的,能够以货币计量的,预期能够给企业带来经济利益的资源) = 负债 + 所有者权益(企业投资者对净资产的所有权) 资产可以分为流动资产、非流动资产、隐形资产 负债可以分为流动负债、非流动负债、隐形负债 1.3. 会计恒等式二 利润 = 收入(与投入资本无关的经济利益) - 费用 收入记录遵循权责发生制(以权利已经形成或者义务已经发生作为确认依据),且要求经济利益很可能流入企业 2. 记账 会计科目:标注大项目和自定义小项目 会计分录:记录借贷数据 会计循环:经济业务 —编审凭证、分录—> 会计凭证 —过账—> 会计账簿 —试算、调整、结账—> 财务报表 3. 财务报表 资产负债表 利润表 现金流量表 4. 资金 所有者投资 实收资本 资本公积 银行筹资 短期借款 长期借款 债券筹资 平利...
Windows内核(11)进程结束原理
1. NtTerminateProcess的函数实现遍历进程的线程,然后对每个线程执行PspTerminateThreadByPointer函数。NTSTATUS NTAPI NtTerminateProcess(IN HANDLE ProcessHandle OPTIONAL, IN NTSTATUS ExitStatus) 2. PspTerminateThreadByPointer的函数实现 目标为本身线程时,直接执行PspExitThread函数 目标为别的线程时,在对方线程插入一个内核APC,APC会执行PspExitThread函数 3. PspExitThread的函数实现 执行了一大堆清理代码,主要清理当前线程Ethread的资源 从调度链表和等待链表中去掉它 如果是进程的最后一个线程,直接清理进程空间 执行KiSwapThread切换到一个新线程去 4. 总结结束进程原理结束进程就是依次结束进程的所有线程,最后一个线程会负责清理进程空间。线程只能被自己结束,所以需要通过内核APC来使得别的线程自己执行结束代码。 5. 内核APC执行时机5.1. 中断和异常返...