手把手教你解密MacOS平台下的Chrome密码

手把手教你解密MacOS平台下的Chrome密码

3个月前 (10-25) 浏览: 30 评论: 0

虽然现在网上有很多开源的软件可以帮助你解密那些存储在GoogleChrome浏览器中的密码,但是这些软件几乎只支持在Windows操作系统下使用。那么对于我们这些Mac用户来说,当我们需要快速导出Chrome中存储的全部密码时,我们该怎么做呢? 直接进入正题 其中最常见的一种做法就是打开Chrome浏览器,选择“浏览器设置”,点击“管理密码”,然后你将会看到如下图所示的界面。接下来,你就可以在这里

OS X平台的Dylib劫持技术(下)

OS X平台的Dylib劫持技术(下)

3个月前 (10-20) 浏览: 30 评论: 0

0x01 攻击 跟着我们对OS X平台下的dylib劫持知识有了基础的理解以后,现在是时候来看看现实世界中的攻击场景,并且提供一些实际的防御方法。 高级的黑客知道,尽可能多的攻击组建自动化对攻击的重要性。这样的自动化能提升攻击的规模和效率。解放攻击者,让攻击者将精力集中到更高的要求或者攻击中更复杂的方面。 劫持攻击的第一个自动化组件就是程序漏洞的挖掘。我们用一个Python脚本,dylibHija

OS X平台的Dylib劫持技术(上)

OS X平台的Dylib劫持技术(上)

3个月前 (10-20) 浏览: 26 评论: 0

DLL劫持是一项广为人知的攻击技术,一直以来被认为只会影响到Windows系统。然而本文将会介绍OS X系统同样存在着动态链接库劫持。通过利用OS X动态库loader的未文档化的技术和几种特性,攻击者将精心制作的包含恶意代码的动态链接库加载进存在漏洞的程序中。通过这种方法,攻击者可以实现多种恶意行为,包括:隐秘驻留,进程加载时注入,绕过安全防护软件,当然还包括Gatekeeper的绕过(提供远程

逆向工厂(二):静态分析技术

逆向工厂(二):静态分析技术

4个月前 (09-28) 浏览: 11 评论: 0

前言 [逆向工厂]第一章节中介绍了逆向技术的相关基础知识,其中提到逆向的两种形式:静态分析、动态分析。本章将对静态分析技术进行讲解,重点阐述静态分析的原理方法,程序的静态结构,常见流程控制语句的静态反编译形态,并且通过实例来掌握利用IDA逆向工具的静态逆向分析技术。 一、静态分析原理与方法 上一篇章介绍到,程序运行前需要将硬盘内编译好的程序文件装载进内存,然后将指令送入CPU执行,此时程序就像“复

逆向工厂(一):从hello world开始

逆向工厂(一):从hello world开始

4个月前 (09-27) 浏览: 32 评论: 0

前言 从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运行机制,逆向通用技术手段和软件保护技术,更加深入地去探索逆向的魅力。 一、程序如何诞生? 1951年4月开始在英国牛津郡哈维尔原子能研究基地正式投入使用的英国数字计算机“哈维尔·德卡特伦”,是当时世界上仅有的十几台电脑之一。图中两人手持的“纸带”即是早期的程序,纸带通过是否穿孔记录1或0,而这些正好对应电子器件的开关

Skype逆向之旅

Skype逆向之旅

4个月前 (09-23) 浏览: 11 评论: 0

from: Skype逆向之旅: 创世纪 http://www.oklabs.net/skype-reverse-engineering-genesis/ Skype逆向之旅:分析篇 http://www.oklabs.net/skype-reverse-engineering-the-long-journey/ 0x00 背景 我想...在显示分析之前先交代一下背景信息。 But,我得先为我糟糕

逆向基础 OS-specific (四)

逆向基础 OS-specific (四)

4个月前 (09-23) 浏览: 29 评论: 0

68.1 CRT(win32) 程序一开始就从main()函数执行的?事实并非如此。如果我们用IDA或者HIEW打开一个可执行文件,我们可以看到OEP(Original Entry Point)指向了其它代码块。这些代码做了一些维护和准备工作之后再把控制流交给我们的代码。这就是所谓的startup-code或叫CRT code(C RunTime)。 main()函数通过一个数组接收命令行传递过来

逆向基础 OS-specific (三)

逆向基础 OS-specific (三)

4个月前 (09-23) 浏览: 14 评论: 0

66章 系统调用(syscall-s) 众所周知,所有运行的进程在操作系统里面分为两类:一类拥有访问全部硬件设备的权限(内核空间)而另一类无法直接访问硬件设备(用户空间)。 操作系统内核和驱动程序通常是属于第一类的。 而应用程序通常是属于第二类的。 举个例子,Linux kernel运行于内核空间,而Glibc运行于用户空间。 这种分离对与操作系统的安全性是至关重要的:它最重要的一点是,不给任何进

逆向基础 OS-specific (二)

逆向基础 OS-specific (二)

4个月前 (09-23) 浏览: 15 评论: 0

65.1 线程局部存储 TLS是每个线程特有的数据区域,每个线程可以把自己需要的数据存储在这里。一个著名的例子是C标准的全局变量errno。多个线程可以同时使用errno获取返回的错误码,如果是全局变量它是无法在多线程环境下正常工作的。因此errno必须保存在TLS。 C++11标准里面新添加了一个thread_local修饰符,标明每个线程都属于自己版本的变量。它可以被初始化并位于TLS中。 L

逆向基础 OS-specific  (一)

逆向基础 OS-specific (一)

4个月前 (09-23) 浏览: 20 评论: 0

64.1 cdcel 这种传递参数的方法在C/C++语言里面比较流行。 如下的代码片段所示,调用者反序地把参数压到栈中:最后一个参数,倒数第二个参数,第一个参数。调用者还必须在函数返回之后把栈指针(ESP)还原为初始状态。 Listing 64.1: cdecl [crayon-58858440a0f4b552486888/] 64.2 stdcall 该调用方法与cdecl差不多,除了被调用者必

逆向基础(十) JAVA (四)

逆向基础(十) JAVA (四)

4个月前 (09-22) 浏览: 22 评论: 0

54.15 异常 让我们稍微修改一下,月处理的那个例子(在932页的54.13.4) 清单 54.10: IncorrectMonthException.java [crayon-58858440a1f00795487234/] 清单 54.11: Month2.java [crayon-58858440a1f0b687195150/] 本质上,IncorrectMonthExceptinClas

逆向基础(九) JAVA (三)

逆向基础(九) JAVA (三)

4个月前 (09-22) 浏览: 21 评论: 0

54.13数组 54.13.1简单的例子 我们首先创建一个长度是10的整型的数组,对其初始化。 [crayon-58858440a302d939699410/] [crayon-58858440a3038932454470/] newarray指令,创建了一个有10个整数元素的数组,数组的大小设置使用bipush指令,然后结果会返回到栈顶。数组类型用newarry指令操作符,进行设定。 newar

逆向基础(八) JAVA (二)

逆向基础(八) JAVA (二)

4个月前 (09-22) 浏览: 25 评论: 0

54.7 线性同余伪随机数生成器 这次来看一个简单的伪随机函数生成器,之前我在书中提到过一次。 [crayon-58858440a482b286946015/] 在上面的代码中我们可以看到开始的地方有两个类字段被初始化。不过java究竟是如何进行初始化的呢,我们可以通过javap的输出看到类构造的方式。 [crayon-58858440a4836106368859/] 从上面的代码我们可以直观的看

逆向基础(六)

逆向基础(六)

4个月前 (09-22) 浏览: 20 评论: 0

Chapter 16 数组 数组是在内存中连续排列的一组变量,这些变量具有相同类型1。 16.1 小例子 [crayon-58858440a5f6f469915660/] 16.1.1 x86 编译后: Listing 16.1: MSVC [crayon-58858440a5f7a100352530/] 这段代码主要有两个循环:第一个循环填充数组,第二个循环打印数组元素。shl ecx,1指令使

逆向基础(五)

逆向基础(五)

4个月前 (09-22) 浏览: 24 评论: 0

Chapter 14 Division by 9 下面是一个非常简单的函数 [crayon-58858440a8c3d698598688/] 14.1 x86 以一种十分容易预测的方式编译的 [crayon-58858440a8c48095313193/] IDIV 有符号数除法指令 64位的被除数分存在两个寄存器EDX:EAX,除数放在单个寄存器ECX中。运算结束后,商放在EAX,余数放在EDX

逆向基础(四)

逆向基础(四)

4个月前 (09-22) 浏览: 12 评论: 0

第11章 选择结构switch()/case/default 11.1 一些例子 [crayon-58858440ab0a4660488088/] 11.1.1 X86 反汇编结果如下(MSVC 2010): 清单11.1: MSVC 2010 [crayon-58858440ab0af997976631/] 输出函数的switch中有一些case选择分支,事实上,它是和下面这个形式等价的: [c

逆向基础(三)

逆向基础(三)

4个月前 (09-22) 浏览: 24 评论: 0

CHAPER7 访问传递参数 现在我们来看函数调用者通过栈把参数传递到被调用函数。被调用函数是如何访问这些参数呢? [crayon-58858440ad48f807071824/] 7.1 X86 7.1.1 MSVC 如下为相应的反汇编代码(MSVC 2010 Express) Listing 7.2 MSVC 2010 Express [crayon-58858440ad49a92447997

逆向基础(二)

逆向基础(二)

4个月前 (09-21) 浏览: 25 评论: 0

Chapter 5 printf() 与参数处理 现在让我们扩展"hello, world"(2)中的示例,将其中main()函数中printf的部分替换成这样 [crayon-58858440af69c231592288/] 5.1 x86: 3个参数 5.1.1 MSVC 在我们用MSVC 2010 Express编译后可以看到: [crayon-58858440af6a6984189146/

逆向基础(一)

逆向基础(一)

4个月前 (09-21) 浏览: 32 评论: 0

第一章 CPU简介 CPU就是执行所有程序的工作单元。 词汇表: Instruction:CPU的原指令,例如:将数据在数据区与寄存器之间进行转移操作,对数据进行操作,算术操作。原则上每种CPU会有自己独特的一套指令构架(Instruction Set Architecture(ISA))。 Machine code: CPU的指令码(机器码),每条指令都会被译成指令码。 Assembly Lan

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享