61阅读

使用指南-SC.exe使用完全指南

发布时间:2017-09-21 所属栏目:charles

一 : SC.exe使用完全指南

写这个东西的目的在于让大家了解一下SC这个服务管理程序的使用,另一方面也是为了让大家更进一步的了解到NT,2000的服务的一些基础问题,如果有时间,希望大家好好看看。再来结合起上一次如何打开termservice服务的那篇文章,在服务方面大家应该比较了解了。用这个东西就可以删除在别人机器里留下的如ffsniffer, sksockerver这些东西,不用再担心,装上了删除不了。但是毕竟这个东西还是MS的产品,所以,如eventlog这样的服务,是不可以用它关闭的。累呀累呀,写了我整整一个早上,就是不知道有没有人看!

sc.exe下载地址:

我们知道在MStools SDK,也就是在Resource Kit有一个很少有人知道的命令行软件,SC.exe,这个软件向所有的Windows NT和Windows 2000要求控制他们的API函数。我们可以在命令行里通过对这些函数设定参数的方式来设定他们(API)。SC.exe也可以显示服务的状态,同时也可以从状态结构区域里重新找到存储在里面的数值。它还可以列出远程计算机的服务函数或者是服务状况结构。
SC.exe这个开发工具至少可以比服务控制面板程序和网络命令行界面(net.exe,这个东西可以告诉你一个服务是在运行中,还是停止,还是暂停。)这两个东西提供更多的细节和准确的信息。虽然上述两个东西在正常工作的情况下,对于完整的调试是非常好用的,但是如果有新的服务,或者新的代码被开发出来的时候,这两个工具提供的信息可能造成误导。这也就是我们需要用到SC的原因。

下面举列说明,如果在开发阶段,你的服务在挂住在一个start-pending的时候,控制面板和net.exe同样报告服务是在运行的。但它挂在一个stop-pending的时候,net.exe报告它运行,而控制面板着报告它停止,如果你试着启动它,这是控制面板则会告诉你这个服务正在运行。难道这不是很困惑吗?呵呵!
SC.exe可以让你询问服务的状况和取出存储在状态结构区域内的数值,控制面板和net.exe不提供服务完整的状况。但是无论如何,SC程序可以告诉你这个服务准确的情形,同样也可以给你看最后的checkpoint数和等待提示。
这个checkpoint,我叫它检查点(我觉得他就像一个程序调试时置的断点),所以我们也可以把看作为一个调试工具,因为它可以提供一个关于在程序停止时还要沿着初始化继续前进多久准确报告。
SC.exe也可以允许你调用很多的服务控制API函数,可以让你从命令行里改变大量的参数。这位服务开发者们提供了很多的优势。例如,它提供了一个方便的方式来创建或者在注册表和服务控制管理数据库中配置服务信息。开发者们不需要在手动的在注册表里单独的设置键值来配置服务,也不用重起机器来强迫服务控制管理数据库升级。
作为一个命令很工具,SC.exe可以用来测试你自己的系统,你可以设置一个批处理文件来使用不同的参数调用SC.exe来控制服务。这个很有用,如果你想看看你的服务不断的启动和停止,我没有试过哦!让一个服务一下子打开,一下子关闭,听上去很不错的。如果你的服务进程里面有多个进程的话,你可以保持一个进程继续运行不让它走开,然后让另一个不断的打开在关闭,还可以寻找一下内存缺乏导致不完全清楚的证据。

下面介绍SC,SC QC,and SC QUERY

SC使用这样的语法:
1. SC [Servername] command Servicename [Optionname= Optionvalue]

2. SC [command]

这里使用第一种语法使用SC,使用第二种语法显示帮助。

下面介绍各种参数。

Servername
可选择:可以使用双斜线,如myserver,也可以是192.168.0.1来操作远程计算机。如果在本地计算机上操作 就不用添加任何参数。

Command
下面列出SC可以使用的命令。

config----改变一个服务的配置。(长久的)

continue--对一个服务送出一个继续控制的要求。

control----对一个服务送出一个控制。

create----创建一个服务。(增加到注册表中)

delete----删除一个服务。(从注册表中删除)

EnumDepend--列举服务的从属关系。

GetDisplayName--获得一个服务的显示名称。

GetKeyName--获得一个服务的服务键名。

interrogate--对一个服务送出一个询问控制要求。

pause----对一个服务送出一个暂停控制要求。

qc----询问一个服务的配置。

query----询问一个服务的状态,也可以列举服务的状态类型。

start----启动一个服务。

stop----对一个服务送出一个停止的要求。

Servicename
在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控制面板看到),而SC是使用服务键名来鉴别服务的。

Optionname
这个optionname和optionvalue参数允许你指定操作命令参数的名称和数值。注意,这一点很重要在操作名称和等号之间是没有空格的。一开始我不知道,结果………………,比如,start= optionvalue,这个很重要。

optionvalue可以是0,1,或者是更多的操作参数名称和数值对。
如果你想要看每个命令的可以用的optionvalue,你可以使用sc command这样的格式。这会为你提供详细的帮助。

Optionvalue
为optionname的参数的名称指定它的数值。有效数值范围常常限制于哪一个参数的optionname。如果要列表请用

sc command来询问每个命令。

Comments
很多的命令需要管理员权限,所以我想说,在你操作这些东西的时候最好是管理员。呵呵!

当你键入SC而不带任何参数时,SC.exe会显示帮助信息和可用的命令。当你键入SC紧跟着命令名称时,你可以得

到一个有关这个命令的详细列表。比如,键入sc create可以得到和create有关的列表。
但是除了一个命令,sc query,这会导出该系统中当前正在运行的所有服务和驱动程序的状态。

当你使用start命令时,你可以传递一些参数(arguments)给服务的主函数,但是不是给服务进程的主函数。

SC create
这个命令可以在注册表和服务控制管理数据库建立一个入口。

语法1
sc [servername] create Servicename [Optionname= Optionvalue]

这里的servername,servicename,optionname,optionvalue和上面的一样,这里就不多说了。这里我们详细说

明一下optionname和optionvalue。

Optionname--Optionvalue
描述

type=----own, share, interact, kernel, filesys
关于建立服务的类型,选项值包括驱动程序使用的类型,默认是share。

start=----boot, system, auto, demand, disabled
关于启动服务的类型,选项值包括驱动程序使用的类型,默认是demand(手动)。

error=----normal, severe, critical, ignore
当服务在导入失败错误的严重性,默认是normal。

binPath=--(string)
服务二进制文件的路径名,这里没有默认值,这个字符串是必须设置的。

group=----(string)
这个服务属于的组,这个组的列表保存在注册表中的ServiceGroupOrder下。默认是nothing。

tag=----(string)
如果这个字符串被设置为yes,sc可以从CreateService call中得到一个tagId。然而,SC并不显示这个标签,所 以使用这个没有多少意义。默认是nothing

depend=----(space separated string)有空格的字符串。
在这个服务启动前必须启动的服务的名称或者是组。

obj=----(string)
账号运行使用的名称,也可以说是登陆身份。默认是localsystem

Displayname=--(string)
一个为在用户界面程序中鉴别各个服务使用的字符串。

password=--(string)
一个密码,如果一个不同于localsystem的账号使用时需要使用这个。

Optionvalue
Optionname参数名称的数值列表。参考optionname。当我们输入一个字符串时,如果输入一个空的引用这意味着

一个空的字符串将被导入。

Comments
The SC CREATE command performs the operations of the CreateService API function.
这个sc create命令执行CreateService API函数的操作。详细请见CreateService。

例1
下面这个例子在一台叫做(myserver)的计算机上为一个叫“NewService”的服务建立的一个注册表登记。
sc myserver create NewService binpath= c:winntsystem32NewServ.exe
按照默认,这个服务会建立一个WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START启动方式。这将不会有任何从属关系,也将会按照localsystem安全上下关系来运行。

例2
下面这个例子将在本地计算机上,建立一个服务,它将会是一个自动运行服务,并且运行在他自己的进程上。它从属于TDI组和NetBios服务上。注意,你必须在从属中间增加一个空格的引用。

sc create NewService binpath= c:winntsystem32NewServ.exe type= own
start= auto depend= "+TDI Netbios"

例3
服务开发者可以通过临时改变二进制路径(影像路径)的方式来将这个服务运行在内核调试器的上下关系中。下面这个例子就可以让我们看到如何改变服务的配置。

sc config NewService binpath= "ntsd -d c:winntsystem32Newserv.exe"
这个例子会引起服务控制管理器调用ntsd.exe使用下例的参数字符串:
"-d c:ntsystem32NewServ.exe"

当系统装入newserv.exe时ntsd将会转而打断调试器,所以断点可以被设置在服务代码里。

SC QC
这个SC QC“询问配置”命令可以列出一个服务的配置信息和QUERY_SERVICE_CONFIG结构。

语法1
sc [Servername] qc Servicename [Buffersize]

Parameters
servername和servicename前面已经介绍过了,这里不再多说。

Buffersize,可选择的,列出缓冲区的尺寸。

Comments

SC QC命令显示了QUERY_SERVICE_CONFIG结构的内容。

以下是QUERY_SERVICE_CONFIG相应的区域。
TYPE------dwServiceType
START_TYPE----dwStartType
ERROR_CONTROL----dwErrorControl
BINARY_PATH_NAME--lpBinaryPathName
LOAD_ORDER_GROUP--lpLoadOrderGroup
TAG------dwTagId
DISPLAY_NAME----lpDisplayName
DEPENDENCIES----lpDependencies
SERVICE_START_NAME--lpServiceStartName

例1

下面这个例子询问了在上面例子中建立的“NewService”服务的配置:

sc myserver qc NewService

sc显示下面的信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : c:winntsystem32NewServ.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : NewService
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem

NewService有能力和其他的服务共享一个进程。但是它不是自动启动的。二进制文件名是NewServ.exe。这个服务不依靠与其它的的服务,而且运行在lcoalsystem的安全上下关系中。这些都是调用QueryServiceStatus基本的返回,如果还需要更多的细节届时,可以看看API函数文件。

SC QUERY

SC QUERY命令可以获得服务的信息。

语法:
sc [Servername] query { Servicename | Optionname= Optionvalue... }

参数:

servername, servicename, optionname, optionvalue不在解释。只谈一下这个命令提供的数值。

Optionname--Optionvalue
Description

type=----driver, service, all
列举服务的类型,默认是service

state=----active, inactive, all
列举服务的状态,默认是active

bufsize=--(numeric value)
列举缓冲区的尺寸,默认是1024 bytes

ri=----(numeric value)
但开始列举时,恢复指针的数字,默认是0

Optionvalue
同上。

Comments

SC QUERY命令可以显示SERVICE_STATUS结构的内容。

下面是SERVICE_STATUS结构相应的信息:
TYPE------dwServiceType
STATE------dwCurrentState, dwControlsAccepted
WIN32_EXIT_CODE----dwWin32ExitCode
SERVICE_EXIT_CODE--dwServiceSpecificExitCode
CHECKPOINT----dwCheckPoint
WAIT_HINT----dwWaitHint

在启动计算机后,使用SC QUERY命令会告诉你是否,或者不是一个启动服务的尝试。如果这个服务成功启动,WIN32_EXIT_CODE区间会将会包含一个0,当尝试不成功时,当它意识到这个服务不能够启动时,这个区间也会提供一个退出码给服务。

例子

查询“NewService"服务状态,键入:

sc query NewService

显示一下信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

注意,这里存在一个给这个服务的退出码,即使这个服务部不在运行,键入net helpmsg 1077,将会得到对1077错误信息的说明:
上次启动之后,仍未尝试引导服务。
所以,这里我想说一句,希望大家可以活用net helpmsg,这会对你的学习有很大的帮助。

下面在对SC query的命令在说明一下:

列举活动服务和驱动程序状态,使用以下命令:
sc query

显示messenger服务,使用以下命令:
sc query messenger

只列举活动的驱动程序,使用以下命令:
sc query type= driver

列举Win32服务,使用以下命令:
sc query type= service

列举所有的服务和驱动程序,使用以下命令:
sc query state= all

用50 byte的缓冲区来进行列举,使用以下命令:
sc query bufsize= 50

在恢复列举时使用index=14,使用以下命令:
sc query ri=14

列举所有的交互式服务,使用以下命令:
sc query type= service type= interact

二 : eReader使用指南

PSP最好用的看电子书软件eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

eReader是一款可以在PSP上阅读电子书、听音乐、看图片的自制软件。(www.61k.com]软件最大的特点就是功能强大界面简单(甚至可以说是没有专门的界面,整个界面就是几短线条和一些文字),如果你是一名纯实用主义者,或者仅仅想用PSP看看电子书,那么小天就向你推荐这款PSP自制软件——eReader。

想用eReader来看电子书,首先你的PSP需要可以运行自制程序。然后到电玩巴士的网站上去下载最新版本的eReader。

下载地址

注:由于PSP系统版本更新,以下关于软件安装部分请查看具体下载地址中的软件安装说明。

安装之前请先确定你的版本信息,PSP开机进入“系统设定(System setting)”,选择“系统信息(System information)”。第二行显示数字为PSP系统版本。

PSP开机进入“USB连接(USB Connection)”,用USB数据线把PSP和电脑相连,这时电脑里将出现一个移动磁盘。

1

ereader eReader使用指南

1.打开下载完成的eReader软件包,你会发现有4个版本的eReader。[www.61k.com]它们的功能区别在名称里写的很清楚,下载适合你的那个就可以了。(如果没有特殊的要求,就下载“普通版本eReader_1_5_9.7z”这个吧)

2.打开某独立版本的压缩包之后,你就会发现16bit和32bit两种分类。选择自己认为合适的版本。(如果不知道选什么,那么就选16bit那版好了)

3.进入XXbit文件夹之后,你会发现有“100”“150”“2XX”三个文件夹,这里是根据PSP版本进行的分类,如果你是1.50系统,那么就将150目录中的两个文件夹拷贝到PSP中的PSP/GAME目录中;如果是其他OE/M33系统,建议将150目录中的两个文件夹拷贝到GAME或者是GAME150目录中去(如果一个不能运行,就去运行第二个)。

4.打开PSP中查看记忆棒中的程序,即可看到eReader的图标。

5.按○运行该程序,进入程序的主界面。

在这里你就可以选择你要打开的文件了,这里展现的是你记忆棒上的文件。

首先,我们来看电子书

eReader最大的功能就是看电子书,只要你将TXT文本文件复制到PSP的记忆棒中,那么就可以使用eReader进行方便的浏览,因为eReader支持浏览PSP中所有的目录,它甚至包括了flash0和flash1这两块系统空间(这里面的文件不要随便动,否则导致PSP变砖)。

ereader eReader使用指南

2

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

图中所显示的就是PSP记忆棒根目录中的文件和文件夹。(www.61k.com]

找到你所想查看的文件之后,点○即可打开该文件。比如我们这里打开的是eReader的说明文件Readme.txt。第一次打开的效果如图(以下完全为默认情况下打开文本)。

如图所示,文本文件已经被成功打开了。并且在屏幕的最底端,程序预留了一行文字的空间,用于显示文件的一些相关信息。从左到右依次是“当前行数/总行数/编码格式/文件名全称”。

默认情况下,文本阅读的按键设置是这样的(看下图)。

玩家可以在任何时间通过按下SELECT键来呼出系统菜单,然后选择其中的“阅读按键”就可以看到上面的截图了。当然在这个界面中也可以方便的进行按键的修改。另外,在相关选项中你还可以设定PSP线控为翻页键。这样,在某些状态下看起书来就更加方便了。 如果觉得软件的默认状态用起来并不是很合适,那么也可以在系统菜单中的“字体设置”、“颜色设置”和“阅读选项”中进行调整。

ereader eReader使用指南

3

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

字体设置中,你可以自由定义菜单字体和阅读字体。(www.61k.com]字体有多种“型号”可选,或者你也可以使用自己定义的字体(TTF格式的字体),但首先你需要将字体文件拷贝到PSP的记忆棒相应的中。

此画面可设置系统的字体颜色以及背景颜色。另外,软件允许使用图片当作程序背景(比如你可以先打开一幅图片,然后再退出??),并可以将其自动转变成灰度背景图片。 电子书高阶晋级

想更舒服更方便的阅读电子书吗?那么一定要对各种阅读选项进行相关配置。配置过程依然需要先呼出主菜单。然后选择里边的阅读选项,弹出以下窗口。

其中前两项是设定每个文字的间隔、行与行之间的间隔以及文字到四边的距离。所以如果你觉得整个屏幕显示的太过密集的话,那么就把这里的间距调大一点,让一个屏幕的文字显得不那么拥挤。

信息栏指的就是是阅读时显示在最底部的那个一行文件信息,你也可以从这里将其关闭。翻页保留一行、文字竖看、滚动条等等选项的功能,各位玩家一试便知,这里小天就不再多说了。

ereader eReader使用指南

4

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

上是默认状态下打开文本的效果。[www.61k.com)

以上为打开了文字竖看的效果。

以上,调整了文字的字体,现在是大字体状态。

以上开启了滚动条显示功能,你可以清楚的看到现在已经读到文章的什么位置了。当然,通过观看底部的信息栏你可以得出相类似的信息(当前行/总行数)。

作为一款阅读软件,eReader当然也支持书签功能。随时按Select键呼出主菜单,其中的最后两项就是和书签有关的,分别是存储书签和读取书签。

ereader eReader使用指南

5

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

上图就是保存书签的窗体,可使用的书签数量还是很多的,足够用户阅读使用了。(www.61k.com) 再次进阶~我们要看图片了

除了观看由纯文字组成的电子书,我们还可以用PSP观看漫画等图片格式的文件,那么大的屏幕看什么图片都会比较舒服(比如某些VIP的图书)。相对于某些其他设备比如NDS,PSP的屏幕可谓超大了。

使用eReader看图片也是非常简单的一件事情,你只需要将图片拷贝到记忆棒中,然后在eReader中找到它,即可顺利打开。

如上图所示,找到图片文件然后点圈键,即可打开图片文件。

好了,图片文件成功打开,如果图片比PSP的分辨率小,那么就是正常显示;如果图片比PSP的分辨率大,软件么默认也是会以原始大小打开图片,超出屏幕的部分不显示。 当然默认不显示出来并不代表没法查看(如果真的没法查看还会有人用eReader看图片吗),这时你只需要按动方向键就可以移动图片,以此来查看整张图片。

ereader eReader使用指南

6

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

默认情况下在移动的过程中程序会在屏幕上显示出一个小窗体,用来标识目前所显示的图片在整个图片中是处于什么位置。[www.61k.com]让用户更加清楚的了解一些相关信息(比如使用它看VIP的图片版电子书的时候??)。

以上均是在默认设置的情况下,用户也可以随时通过SELECT键呼出主菜单,然后做一些相应的修改。与看图有关的选项包括“看图设置”、“看图按键”两个部分。

在看图选项中,用户可以设定诸如缩放算法(使用立方还是线性缩放)、幻灯片播放时间、查看图片的起始位置、图片滚动的速度等等各种涉及到具体使用的细节功能。

而在按键设置中则可以设置看图时各种按键的功能,默认情况下方向键控制一张图片内部的“拖拽看图”,而L和R键以及右手位的四个按键则是控制图片显示的其他功能。 看书看图的同时我们还要听音乐~!

eReader不仅仅可以看书看图,它也支持在看图看书的同时听音乐。或者你只是单纯的听音乐,eReader的效果也是很好的。

在任意界面下按下Start即可呼出音乐播放界面。

ereader eReader使用指南

7

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

该界面分成上中下三部分,上部显示的是当前时间、CPU频率、剩余电量等相关信息,下部则是音乐播放的控制说明以及所播放音乐的相关信息,而中间则是显示歌词的地方(如果有歌词的话)。(www.61k.com)

软件并不会自动搜索PSP中所存在的音乐文件,用户需要手工编辑播放列表,向其中加入音乐文件才可以实现音乐的播放。加入音乐的方法很简单,就是在主界面的文件选单中找到音乐文件然后按圈就可以了(跟看书、看图片的方法是一样的)。

如图,我们已经加入了多首音乐文件,包括MP3和WMA等格式的音乐文件均可正常播放。 如果想让音乐播放的同时显示歌词,那么你只需要将LRC格式的歌词文件和MP3等音乐文件放置在同意目录并且使用相同的文件名。这样软件就可以在播放音乐的同时自动显示歌

词了。

以上为有歌词文件存在时的音乐播放状态,中间部分为歌词显示区域。

同样的,以上所有的功能均是在软件的默认状态下完成的,如果你需要对这些功能进行调整,那么依然是按动Select键,然后再呼出的主菜单中进行相关设置。与音乐播放有关的设置包括“操作设置”和“音乐播放”。

ereader eReader使用指南

8

ereader eReader使用指南

ereader eReader使用指南

ereader eReader使用指南

操作设置中,用户可以选择线控的控制功能,你的线控到底是用来控制音乐播放还是电子书翻页就是在这里设置的。(www.61k.com]

而音乐播放选项中,用户可以设定音乐是否自动播放,以及歌词显示的行数(默认情况下只显示3行)。

设置好这一切之后,从音乐控制界面退出来就可以了,音乐的播放是不会中断的,现在再次打开电子书,享受边听音乐边看书的休闲时光吧。

最后的一些补记

补记1. eReader不仅仅可以读取文本、图片和音乐文件,它同样可以打开其他任何文件。只是如果该文件并非eReader所支持的文件格式,它就会以16位方式将其打开,如下图就是使用eReader打开一个AVC视频文件。

补记2. 从电玩巴士网站上下载的eReader里包含四个版本,分别是最精简版:只保留最基本的功能;省电版:去掉了线控和音乐;去WMA版:功能省略的和名称一样;普通版:也就是什么都有的完全版本。用户可以根据自己的需要来选择不同的版本进行下载。

ereader eReader使用指南

9

ereader eReader使用指南

ereader eReader使用指南

三 : charles使用教程指南

Charles各版本下载:[www.61k.com)

Charles for Windows 32 bit

Charles for Windows 64 bit

Charles for linux

Charles for Mac OS X

Charles for Mac OS X (uses Apple Java 6)

0x01 前言:

Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的抓包工具。

0x02 下载与安装

首先是工具下载和安装 首先需要下载java的运行环境支持(一般用burp的人肯定也都有装java环境)。装好java环境后,可以直接去百度搜索并下载charles的破解版,下载到破解版之后,里面一般会有注册的jar文件,然后注册后就可以永久使用了(ps:不注册的话,每次使用30分钟,工具就会自动关闭)。

0x03 PC端抓包

下面是pc端的抓包使用情况 Charles支持抓去http、https协议的请求,不支持socket。

然后charles会自动配置IE浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。 这里打开百度抓包下,工具界面和相关基础功能如下图所示:

charles charles使用教程指南

上图中的7个位置是最常用的几个功能。

1 那个垃圾桶图标,功能是clear,清理掉所有请求显示信息。

2 那个望远镜图标,功能是搜索关键字,也可以使用ctrl+f实现,可以设置搜索的范围。

charles charles使用教程指南

3 圆圈中间红点的图标,功能是领抓去的数据显示或者不显示的设置。 这个本人认为是charles工具很方便的一个两点,一般都使其为不显示抓去状态,只有当自己测试的时候的前后,在令其为抓取并显示状态。这样可以快准狠的获取到相关自己想要的信息,而不必在一堆数据请求中去寻找。

4 编辑修改功能,可以编辑修改任意请求信息,修改完毕后点击Execute就可以发送一个修改后的请求数据包。

charles charles使用教程指南

5 抓取的数据包的请求地址的url信息显示。

6 抓取的数据包的请求内容的信息显示。

charles charles使用教程指南

post请求可以显示form形式,直观明了。

charles charles使用教程指南

7 返回数据内容信息的显示。

charles charles使用教程指南

其中5、6、7中都有各种形式的数据显示形式,其中raw是原始数据包的状态。

0x04 显示模式

charles抓包的显示,支持两种模式,Structure和Sequence,其优点分别如下。

Structure形式如下图 优点:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

charles charles使用教程指南

Sequence形式如下图 优点:可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的,也就是说那个请求快就在前面显示。

charles charles使用教程指南

具体要说两种形式哪个更好,这个就是见仁见智了。本人比较喜欢第二种,粗矿豪放!

0x05 移动APP抓包

这里相比其他抓包软件来说要简单的多了,具体步骤如下:

1 使手机和电脑在一个局域网内,不一定非要是一个ip段,只要是同一个漏油器下就可以了,比如电脑连接的有线网ip为192.168.16.12,然后手机链接的wifi ip为192.168.1.103,但是这个有线网和无线网的最终都是来自于一个外部ip,这样的话也是可以的。

2 下面说说具体配置,这里电脑端是不用做任何配置的,但是需要把防火墙关掉(这点很重要)!

然后charles设置需要设置下允许接收的ip地址的范围。 设置首先要进入这个位置 Proxy - Access Control Settings 然后如果接收的ip范围是192.168.1.xxx的话,那么就添加并设置成192.168.1.0/24 如果全部范围都接收的话,那么就直接设置成0.0.0.0/0

charles charles使用教程指南

然后如果勾选了Proxy - Windows Proxy 的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。

3 接下来下面是手机端的配置

首先利用cmd - ipconfig命令查看自己电脑的ip地址

charles charles使用教程指南

然后在手机端的wifi代理设置那里去进行相关的配置设置。

这里的代理服务器地址填写为电脑的ip地址,然后端口这里写8888(这个是charles的默认设置),如果自己修改了就写成自己所修改的端口就可以了。

charles charles使用教程指南

4 好了,这样就配置完成就大功告成了!下面打开UC浏览器或者其他东西,随便访问个网页看有没有抓取到数据就可以了(我这里是直接访问的新浪新闻首页)。

charles charles使用教程指南

0x06 其他常用功能

相信上面介绍的那些你已经学会了吧,下面再说说charles的一些其他常用的功能

选择请求后,右键可以看到一些常用的功能,这里说说Repeat 就是重复发包一次。 然后Advanced Repeat就是重复发包多次,这个功能用来测试短信轰炸漏洞很方便。

charles charles使用教程指南

还有比如说修改referer测试CSRF漏洞,修改form内容测试XSS,修改关键的参数测试越权,修改url、form、cookie等信息测试注入等,都非常方便。

好了,这款工具的介绍就到这里了,相信这款方便好用的工具,以后肯定会被更多的人使用到的。

0x07 charles使用问题汇总

Charles是一款很好用的抓包修改工具,但是如果你不是很熟悉这个工具的话,肯定会遇到各种感觉很莫名其妙的状况,这里就来帮你一一解答。

1 为什么下载了不能用啊?打不开啊。

因为charles是需要java环境才能运行的,需要先安装java环境才可以。

2 为什么我用着用着就自动关闭了?大概30分钟就会关闭一次。

因为charles如果没有注册的话,每次打开后就只能哟个30分钟,然后就会自动关闭,所以最好在使用前先按照说明去进行工具的注册操作。

3 为什么我在操作的时候有时候就直接工具就界面卡住死了,关都关不掉,只能用任务管理器才可以关掉?

这个的确是charles这个工具的一个bug,开始用的时候,我也很恶心,而且经常悲剧,但是现在也有相应的解决办法了,下面那样操作就可以了。

首先随便抓些包,要求有图片的请求。

charles charles使用教程指南

然后选中一个图片的请求,然后分别点击 Response - Raw 然后那里会加载其中的内容,然后加载完毕后,再去随便操作就可以了,就不会在悲剧的直接工具卡死掉了。。。

charles charles使用教程指南

4 为什么用了charles后,我就上不了网页了,但是qq可以。

因为如果charles是非正常状态下关闭的话,那么IE的代理就不会被自动取消,所以会导致这种情况。

解决办法:

第一种:直接打开charles,然后再正常关闭即可。 第二种:去将IE浏览器代理位置的勾选去掉。

charles charles使用教程指南

5 为什么我用charles不能抓到socket和https的数据呢?

首先,charles是不支持抓去socket数据的。 然后,如果抓不到https的数据的话,请查看你是不是没有勾选ssl功能。 Proxy - Proxy Settings - SSL 设置

6 为什么我用charles抓取手机APP,什么都是配置正确的,但是却抓不到数据。

首先,请确保电脑的防火墙是关闭状态,这个很重要。

charles charles使用教程指南

如果,防火墙关了还是不行,那么请把手机wifi断掉后重新连接,这样一般就可以解决问题了。 如果以上方法还是不行的话,那么请将手机wifi位置的ip地址设置成静态ip,然后重启charles工具。

7 抓包后发现form中有些数据显示是乱码怎么办?

请在Raw模式下查看,Raw模式显示的是原始数据包,一般不会因为编码问题导致显示为乱码。

8 我用charles抓手机app的数据,但是同时也会抓去到电脑端的数据,可以设置吗?

可以,设置位置在Proxy - Windows Proxy ,勾选表示接收电脑的数据抓包,如果只想抓去APP的数据请求,可以不勾选此功能。

9 为什么我用IE可以抓到数据,但是用360或者谷歌浏览器就不行?

请确保360或者谷歌的代码设置中是不是勾选设置的是 使用IE代理。

charles charles使用教程指南

10 想要复制粘贴某些数据的话,怎么办,右键没有相应功能啊?

请直接使用Ctrl +C 和 Ctrl+V 即可。

以上就是charles在使用过程中常见的10中问题和相应的解决情况,有了这个文章,大家就不用在遇到问题的时候懊恼了,嘿嘿

四 : pthread 简要使用指南(一) pthread

POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程。该标准定义内部API创建和操纵线程。 Pthreads定义了一套 C程序语言类型、函数与常量,它以 pthread.h 头文件和一个线程库实现。
直接上代码,简单明了。

[cpp]
#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

// 线程ID
pthread_t ntid;
// 互斥对象
pthread_mutex_t mutex;

int count;

void printids(const char *s)
{
pid_t pid;
pthread_t tid;

pid = getpid();
tid = pthread_self();

printf("%s pid %u tid %u (0x%x)\n", s, (unsigned int)pid,
(unsigned int)tid, (unsigned int)tid);
}

// 线程函数
void *thr_fn(void *arg)
{
printids("new thread begin\n");

// 加锁
pthread_mutex_lock(&mutex);

printids("new thread:");

int i=0;
for ( ; i < 5; ++i )
{
printf("thr_fn runing %d\n", count++);
}

// 释放互斥锁
pthread_mutex_unlock(&mutex);

return ( (void*)100);
}

int main(void)
{
int err;

count = 0;
// 初始化互斥对象
pthread_mutex_init(&mutex, NULL);

// 创建线程
err = pthread_create(&ntid, NULL, thr_fn, NULL);
if ( 0 != err )
{
printf("can&#39;t create thread:%s\n", strerror(err));
}

// sleep(5);
pthread_mutex_lock(&mutex);
printids("main thread:");
int i=0;
for ( ; i < 5; ++i )
{
printf("main runing %d \n", count++);
}
sleep(1);
pthread_mutex_unlock(&mutex);

int **ret;
pthread_join(ntid, (void**)ret);
printf("thr_fn return %d\n", *ret);

pthread_mutex_destroy(&mutex);


return 0;
}

这个例子,用到了pthread的数据结构:
pthread_t, 这个结构来标识线程ID;
pthread_mutex_t, 这个用来做互斥;

用到了如下函数:
pthread_self() : 获得线程自身的ID;

pthread_create(&ntid, NULL, thr_fn, NULL): 线程创建函数
原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void*(*start_routine)(void*), void *arg)。
tid : 新创建线程的线程ID;
attr: 指定新创建线程的线程属性,为NULL即为使用默认属性;
start_routine : 这是一个函数指针,用来指向线程函数;
arg : 传递给线程函数的指针;
返回值 : 0代表成功。 失败,返回的则是错误号。

pthread_join(ntid, (void*)ret):等待一个线程的结束
原型:int pthread_join(pthread_t thread, void **retval);
thread : 需要等待的线程的ID;
retval : 存放等待线程的返回值;
返回值 : 0代表成功。 失败,返回的则是错误号。

pthread_mutex_init(&mutex, NULL):初始化互斥锁,以动态方式创建互斥锁
原型:int pthread_mutex_init(pthread_mutex_t *restrict mutex,
const pthread_mutexattr_t *restrict attr);
mutex : 被初始化的锁对象;www.2cto.com
attr : 指定新建互斥锁的属性。为NULL,则使用默认的互斥锁属性,默认属性为快速互斥锁。

pthread_mutex_lock(&mutex) : 加锁
pthread_mutex_unlock(&mutex) : 释放锁

pthread_mutex_destroy(&mutex): 销毁锁对象


编译的时候,需要加上编译参数“-lpthread”。
可以屏蔽pthread_mutex_lock(),pthread_mutex_unlock()看下没有互斥的结果。

五 : 卡西欧FC-200V(100V)使用指南

本文标题:使用指南-SC.exe使用完全指南
本文地址: http://www.61k.com/1094370.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1