tinycc源码分析的简单介绍

hacker|
80

文章目录:

谁有可以编译中文程序的C语言编译器,比如lcc,gcc等这些专门的C语言编译器,要可以编译含有中文的程序。

DEV C只是个IDE,大概有汉化补丁,GCC嘛,down源代码自己修改再make吧

如何获取tinyeditor在线编辑器的内容?

多看看官方网站,外语可以用GOOGLE 网页翻译再看

你创建编辑器的时候

var instance = new TINY.editor.edit(....);

在提交表单的时候或者表单验证通过之后

instance.post();

这样就会取到最新更新的值.

哪位大神用过Tiny Core,默认英文界面,无法显示汉字。应该怎么配置中文字体和输入法?我按网上

在用户主目录下(/home/aaa,aaa是你的用户名),创建 .xinitrc 文件,写下如下内容:

#! /bin/sh

export LOCAL=zh_CN.UTF-8

export LC_CTYPE=zh_CN.UTF-8

如果那个文件已经存在,把后两行复制进去。

至于输入法,Linux需要安装输入法,可以有fcitx, scim, ibus等。

安装好输入法,还要修改 .xinitrc ,添加如下:(我以scim为例,我的Slackware用的正是这个)

export XMODIFIERS=@im="scim"

export GTK_IM_MODULE="scim"

export QT_IM_MODULE="scim"

export XIM_PROGRAM="/usr/bin/scim -d"

注意ibus需要GTK+的支持,这个以前我弄过,用git把源代码拷贝过来,用configure配置,若果有依赖库过旧会提示的,那次为了装个ibus,我把系统的gtk+及相关库,如gio等,都重新编译安装了一遍,最后总算用上了ibus,但是,ibus对我的chrome支持不是很好,还是换回了scim。

什么是BIND漏洞?

在上网的时候,我们经常会看到“端口”这个词,也会经常用到端口号,比如在FTP地址后面增加的“ 21”,21就表示端口号。那么端口到底是什么意思 呢?怎样查看端口号呢?一个端口是否成为网络恶意攻击的大门呢?,我们应该如何面对形形色色的端口呢?下面就将介绍这方面的内容,以供大家参考。

21端口:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。

端口说明:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,FTP服务主要是为了在两台计算机之间实现文件的上传与下载,一台计算机作为FTP客户端,另一台计算机作为 FTP服务器,可以采用匿名(anonymous)登录和授权用户名与密码登录两种方式登录FTP服务器。

Windows中可以通过Internet信息服务(IIS)来提供FTP连接和管理,也可以单独安装FTP服务器软件来实现FTP功能,比如常见的FTP Serv-U。

操作建议:因为有的FTP服务器可以通过匿名登录,所以常常会被黑客利用。另外,21端口还会被一些木马利用,比如Blade Runner、FTP Trojan、Doly Trojan、WebEx等等。如果不架设FTP服务器,建议关闭21端口。 23端口:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。

端口说明:23端口主要用 于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。同样需要设置客户端和服务器端,开启Telnet服务的客户端就可以登 录远程Telnet服务器,采用授权用户名和密码登录。登录之后,允许用户使用命令提示符窗口进行相应的操作。在Windows中可以在命令提示符窗口 中,键入“Telnet”命令来使用Telnet远程登录。

操作建议:利用Telnet服务,黑客可以搜索远程登录Unix的服务,扫 描操作系统的类型。而且在Windows 2000中Telnet服务存在多个严重的漏洞,比如提升权限、拒绝服务等,可以让远程服务器崩溃。Telnet服务的23端口也是TTS(Tiny Telnet Server)木马的缺省端口。所以,建议关闭23端口。

25端口:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。

端口说明:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。比如我们在使用电子邮件客户端程序的时候, 在创建账户时会要求输入SMTP服务器地址,该服务器地址默认情况下使用的就是25端口。

端口漏洞:

1. 利用25端口,黑客可以寻找SMTP服务器,用来转发垃圾邮件。

2. 25端口被很多木马程序所开放,比如Ajan、Antigen、Email Password Sender、ProMail、trojan、Tapiras、Terminator、WinPC、WinSpy等等。拿WinSpy来说,通过开放25 端口,可以监视计算机正在运行的所有窗口和模块。

操作建议:如果不是要架设SMTP邮件服务器,可以将该端口关闭。

53端口:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。

端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。

端口漏洞:如果开放DNS服务,黑客可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。近日,美国一家公司也公布了10个最易遭黑客攻击的漏洞,其中第一位的就是DNS服务器的BIND漏洞。

操作建议:如果当前的计算机不是用于提供域名解析服务,建议关闭该端口。

67、68端口:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。

端口说明:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。Bootp服务是一种产生于早期Unix的远程启动协议,我们现在经常用到的DHCP服务就是从 Bootp服务扩展而来的。通过Bootp服务可以为局域网中的计算机动态分配IP地址,而不需要每个用户去设置静态IP地址。

端口漏洞:如果开放Bootp服务,常常会被黑客利用分配的一个IP地址作为局部路由器通过“中间人”(man-in-middle)方式进行攻击。

操作建议:建议关闭该端口。

69端口:TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。

端口说明:69端口是为TFTP(Trival File Tranfer Protocol,次要文件传输协议)服务开放的,TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。不过与FTP相比,TFTP不具 有复杂的交互存取接口和认证控制,该服务适用于不需要复杂交换环境的客户端和服务器之间进行数据传输。

端口漏洞:很多服务器和Bootp服务一起提供TFTP服务,主要用于从系统下载启动代码。可是,因为TFTP服务可以在系统中写入文件,而且黑客还可以利用TFTP的错误配置来从系统获取任何文件。

操作建议:建议关闭该端口。

79端口:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。

端口说明:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。比如要显示远程计算机上的user01用户的信息,可以在命令行中键入“finger user01@”即可。

端口漏洞:一般黑客要攻击对方的计算机,都是通过相应的端口扫描工具来获得相关信息,比如使用“流光”就可以利用79端口来扫描远程计算机操作系统版 本,获得用户信息,还能探测已知的缓冲区溢出错误。这样,就容易遭遇到黑客的攻击。而且,79端口还被Firehotcker木马作为默认的端口。

操作建议:建议关闭该端口。

80端口:80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。

端口说明:80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。我们可以通过HTTP地址加“:80”(即常说的“网址”)来访问网站的,比如,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。

端口漏洞:有些木马程序可以利用80端口来攻击计算机的,比如Executor、RingZero等。

操作建议:为了能正常上网冲浪,我们必须开启80端口。

99端口:99端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。

端口说明:99端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。

端口漏洞:虽然“Metagram Relay”服务不常用,可是Hidden Port、NCx99等木马程序会利用该端口,比如在Windows 2000中,NCx99可以把cmd.exe程序绑定到99端口,这样用Telnet就可以连接到服务器,随意添加用户、更改权限。

操作建议:建议关闭该端口。

109、110端口:109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的。

端口说明:109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多, 许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务,如今ISP的绝大多数邮件服务器都是使用该协议。在使用电 子邮件客户端程序的时候,会要求输入POP3服务器地址,默认情况下使用的就是110端口。

端口漏洞:POP2、POP3在提供邮件接 收服务的同时,也出现了不少的漏洞。单单POP3服务在用户名和密码交换缓冲区溢出的漏洞就不少于20个,比如WebEasyMail POP3 Server合法用户名信息泄露漏洞,通过该漏洞远程攻击者可以验证用户账户的存在。另外,110端口也被ProMail trojan等木马程序所利用,通过110端口可以窃取POP账号用户名和密码。

操作建议:如果是执行邮件服务器,可以打开该端口。

111端口:111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。

端口说明:111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。常见的RPC服务 有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等等。在Microsoft的Windows中,同 样也有RPC服务。

端口漏洞:SUN RPC有一个比较大漏洞,就是在多个RPC服务时xdr_array函数存在远程缓冲溢出漏洞,通过该漏洞允许攻击者传递超

113端口:113端口主要用于Windows的“Authentication Service”(验证服务)。

端口说明:113端口主要用于Windows的“Authentication Service”(验证服务),一般与网络连接的计算机都运行该服务,主要用于验证TCP连接的用户,通过该服务可以获得连接计算机的信息。在 Windows 2000/2003 Server中,还有专门的IAS组件,通过该组件可以方便远程访问中进行身份验证以及策略管理。

端口漏洞:113 端口虽然可以方便身份验证,但是也常常被作为FTP、POP、SMTP、IMAP以及IRC等网络服务的记录器,这样会被相应的木马程序所利用,比如基于 IRC聊天室控制的木马。另外,113端口还是Invisible Identd Deamon、Kazimas等木马默认开放的端口。

操作建议:建议关闭该端口。

119端口:119端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的。

端口说明:119端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的,主要用于新闻组的传输,当查找USENET服务器的时候会使用该端口。

端口漏洞:著名的Happy99蠕虫病毒默认开放的就是119端口,如果中了该病毒会不断发送电子邮件进行传播,并造成网络的堵塞。

操作建议:如果是经常使用USENET新闻组,就要注意不定期关闭该端口。 135端口:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。

端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代 码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。

端口漏洞:相信去年很多Windows 2000和Windows XP用户都中了“冲击波”病毒,该病毒就是利用RPC漏洞来攻击计算机的。RPC本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误 地处理格式不正确的消息造成的。该漏洞会影响到RPC与DCOM之间的一个接口,该接口侦听的端口就是135。

操作建议:为了避免“冲击波”病毒的攻击,建议关闭该端口。

自己看看下

参考资料:

回答者: WXINGC - 高级魔法师 六级 3-1 08:03

我来评论

评价已经被关闭 目前有 0 个人评价

50% (0) 不好

50% (0)

相关内容

• 在哪关闭危险端口啊!(说详细点!)

• 书上说的“3387端口”“9833端口”这一类端口都是指...

• 如何上传自己制作的网站呢,我自己有猫但是没有服务器...

• 电脑端口是什么意思?

• 怎么使用SuperScanV4.0-RHC扫描自己的电脑端口?

查看同主题问题:端口

如何利用tinyxml操纵xml及注意问题

创建的格式如下:

复制代码 代码如下:

Persons

Person

namelhy/name

age22/age

/Person

/Persons

上篇博客中,我们也介绍了tinyxml解析器中的所有的类以及类之间的关系。

创建上述格式的xml,代码如下:

复制代码 代码如下:

//创建一个XML的文档对象。

TiXmlDocument *myDocument = new TiXmlDocument();

//创建一个根元素并连接。

TiXmlElement *RootElement = new TiXmlElement("Persons");

myDocument-LinkEndChild(RootElement);

//创建一个Person元素并连接。

TiXmlElement *PersonElement = new TiXmlElement("Person");

RootElement-LinkEndChild(PersonElement);

//创建name元素、age元素并连接。

TiXmlElement *NameElement = new TiXmlElement("name");

TiXmlElement *AgeElement = new TiXmlElement("age");

PersonElement-LinkEndChild(NameElement);

PersonElement-LinkEndChild(AgeElement);

//设置name元素和age元素的内容并连接。

TiXmlText *NameContent = new TiXmlText("lhy");

TiXmlText *AgeContent = new TiXmlText("22");

NameElement-LinkEndChild(NameContent);

AgeElement-LinkEndChild(AgeContent);

myDocument-SaveFile("d:\\lhy\\xml.txt");//保存到文件

只要搞清xml中节点之间的关系,创建不是问题。说白了就是一种辈分关系。

创建搞定了,但是作为C++程序猿,写完之后,总感觉有点别扭,总感觉哪不对劲。你是否也看出其中存在的猫腻?

对了,些许的代码中有大量的New指针。在C++中可没有java中的垃圾回收机制,必须自己来处理这些废弃的垃圾。但是代码中却没有Delete语句?

上网查了资料,发现很多创建代码中,都没有Delete语句?难道是大家都是复制粘贴?还是tinyxml在搞怪?

我总结了以下几点,但是最后在开发的过程中仍是疑问,但是开发的过程中,没有出现问题,所以我的程序就暂时如此了。

说法一:很多文章中,都是new没有delete,是因为tinyxml可以自动释放,自动销毁指针,无需开发者手动释放。

质疑:new出来的可以自动释放?new出来说明是在堆上创建的,什么时候会自动释放?程序结束时,自动释放?那怎么判断程序结束呢?(在一个模块中如何析构另一个模块中的内存区域,我们后面会详谈),所以这种说法不攻自破。

既然tinyxml中有自毁功能,那我们查询其源代码,发现果真如此,tinyxml中在析构函数中,有相应的指针释放。但是并不是每个节点如此的。

源码中的详情:

复制代码 代码如下:

TiXmlNode::~TiXmlNode()

{

TiXmlNode* node = firstChild;

TiXmlNode* temp = 0;

while ( node )

{

temp = node;

node = node-next;

delete temp;

}

}

void TiXmlNode::Clear()

{

TiXmlNode* node = firstChild;

TiXmlNode* temp = 0;

while ( node )

{

temp = node;

node = node-next;

delete temp;

}

firstChild = 0;

lastChild = 0;

}

我们也知道tinyxml中的类之间存在继承关系。

那我们看tinyxml中的TixmlElement类:

复制代码 代码如下:

TiXmlElement::~TiXmlElement()

{

ClearThis();

}

void TiXmlElement::ClearThis()

{

Clear();

while( attributeSet.First() )

{

TiXmlAttribute* node = attributeSet.First();

attributeSet.Remove( node );

delete node;

}

}

因为TixmlElement是继承TiXmlNode.但是在TiXmlDocument中并没有发现TiXmlDocument类的析构函数。

第二种说法:TiXmlDocument对象就是这棵树的根结点,

在一个完整的文档中, 除了它, 其余结点必须都是它的后代, 所以TinyXml用了一个很巧妙的方法来析构每一个结点所对应的对象 ----

每个结点的析构任务都委托给了它的父亲, 这样只要保证父亲被正确析构, 或者调用了父亲的Clear函数, 它的所有后代都会被正确的析构,

所以对整个文档来说只要TiXmlDocument对象被正确析构即可。

在创建的上述代码中,我们发现,所有的节点都是挂在根节点之下的。

其实这句代码: myDocument-LinkEndChild(RootElement);使用了多态方式。类之间的关系如下:

并且LinkEndChild源代码如下:它是父类TiXmlNode中的方法

复制代码 代码如下:

TiXmlNode* TiXmlNode::LinkEndChild( TiXmlNode* node )

{

assert( node-parent == 0 || node-parent == this );

assert( node-GetDocument() == 0 || node-GetDocument() == this-GetDocument() );

if ( node-Type() == TiXmlNode::DOCUMENT )

{

delete node;

if ( GetDocument() ) GetDocument()-SetError( TIXML_ERROR_DOCUMENT_TOP_ONLY, 0, 0, TIXML_ENCODING_UNKNOWN );

return 0;

}

node-parent = this;

node-prev = lastChild;

node-next = 0;

if ( lastChild )

lastChild-next = node;

else

firstChild = node;// it was an empty list.

lastChild = node;

return node;

}

这样的话:则只要删除根节点,在程序中myDocument,就相当于把删除了TiXmlNode,相当于调用了TiXmlNode的析构函数。

质疑:网上说这种方式,析构是从叶子到树根。根据TiXmlNode中的析构函数,我们可以得出,是从树根到叶子。

但是我们在Delete myDocument时,应该注意一点:

创建文档时,也就是程序段中的myDocument。若是从堆上创建,则需需要手动释放。如我们上述的片段中,就是在堆上创建的。

TiXmlDocument *myDocument=new TiXmlDocument ();

若是从栈上创建,则不须我们手动释放,而是程序自动调用析构函数。同时我们应该注意,其他的元素必须在堆上创建。因为在TiXmlNode析构函数中,是delete的,但是栈上的东东是不须delete,所以除了根节点之外连接的后代节点是必须从堆上创建。

经过我们解释,明白tinyxml中的原理了吗?只要理解了tinyxml中的类的作用以及类之间的关系,看源码是没问题滴哦。

这篇博客根据创建xml小demo解释了其中存在的疑问。那下篇博客中我们会根据解析xml来答疑解析中存在的问题。

语法分析器

上面的链接是一个全球最小的ANSI C解释器,源代码开放,你拿来直接用就行

5条大神的评论

  • avatar
    访客 2022-07-09 下午 06:41:30

    如,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。 端口漏洞:有些木马程序可以利用80端口来攻击计算机的,比如Executor、RingZero等。 操作建议:为了能正常上网冲浪,我们必须开启80端口。 99端口:99端口是用于一个名为“Metagr

  • avatar
    访客 2022-07-09 下午 01:31:28

    该端口。 67、68端口:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。 端口说明:67、68端口

  • avatar
    访客 2022-07-09 下午 03:02:06

    中有大量的New指针。在C++中可没有java中的垃圾回收机制,必须自己来处理这些废弃的垃圾。但是代码中却没有Delete语句? 上网查了资料,发现很多创建代码中,都没有Delete语句?难道是大家都是复制粘贴?还是tinyxml在搞怪? 我总结了以下几点,但是最后在开发的过程中仍是疑问,但是开发的

  • avatar
    访客 2022-07-09 下午 06:28:50

    作的网站呢,我自己有猫但是没有服务器... • 电脑端口是什么意思? • 怎么使用SuperScanV4.0-RHC扫描自己的电脑端口? 查看同主题问题:端口如何利用tinyxml操纵xml及注意问题创建的格式如下: 复制代码 代码如下:Per

  • avatar
    访客 2022-07-09 下午 08:56:30

    PC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。常见的RPC服务 有rpc.

发表评论