摘要:上一篇分析了 接入设备 在接入路由器,并发起首次 HTTP/80 请求到路由器上时,wifidog 是如何将此 HTTP 请求重定向至 auth-server 的流程。 之后 接入设备 的浏览器接收到 wifidog 返回的 302 重定向请求后,会将页面重定向至 auth-server 的 /login 页面,并且在此 URL 中会携带一些 路由器/网关 参数,以及 接入设备的 MAC 地址 和...
阅读全文
随笔分类 - Linux
摘要:上一篇分析了接入设备的首次浏览器访问请求如何通过 防火墙过滤规则 重定向到 wifidog 的 HTTP 服务中,本篇主要分析了 wifidog 在接收到 接入设备的 HTTP 访问请求后,如何将此 HTTP 请求重定向到 认证服务器(auth-server) 上。 通过上面的防火墙规则,会将通过上面的防火墙规则,会将HTTP请求的外部IP地址和端口通过NAT方式重定向至本地wifidog内嵌HT...
阅读全文
摘要:wifidog 的核心还是依赖于 iptables 防火墙过滤规则来实现的,所以建议对 iptables 有了了解后再去阅读 wifidog 的源码。 在路由器上启动 wifidog 之后,wifidog 在启动时会初始化一堆的防火墙规则,如下: [cpp] view plaincopy /** Initialize the firewall rules */ int iptables_fw_i...
阅读全文
摘要:目录(?)[-] 网关心跳协议 请求信息 回复格式 例子 用户状态心跳协议 请求格式 注意 回复格式 状态码 例子 跳转协议 请求格式 例子 注册协议 请求格式 例子 wifidog是搭建无线热点认证系统的解决方案之一,他比nocat更适合互联网营销思路。目前支持openwrt系统,他实现了路由器和认证服务器的数据交互,在路由器方是用C语言代码,通过wifidog程序和linux ip...
阅读全文
摘要:一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。 我们写个最简单的hello world程序,用gccs编译,再反编译后会看到以下指令: mov 0x80495b0, %eax 这里的内存地址0x80495b0 就是一个逻辑地址,必须加上隐含的DS 数据段的基地址,才能构成线性地址。也就是...
阅读全文
摘要:一、操作系统 1、现代操作系统 作者:(荷)ANDREW S. TANENBAUM http://www.china-pub.com/25383 2、操作系统设计与实现 作者:(荷)ANDREW S. TANENBAUM http://www.china-pub.com/40886 3、Linux内核设计与实现 【作者】(美)Robert Love http://www.china-p...
阅读全文
摘要:由于做项目的需要和自己的爱好,最近在找关于无线路由器的资料,找到了些相关的资料,在这里总结一下。一、无线路由器与无线AP的区别AP为Access Point简称,一般翻译为“访问节点”,无线AP主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信。通俗的讲,无线AP是无线网和有线网之间沟通的桥梁。当前的无线AP可以分为两类:单纯...
阅读全文
摘要:其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦, 所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍, 软件准备: 需要 MASM 5.0 或者以上的汇编编译器 首先,是要编辑汇编源代码: 其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就 OK 了 运行 cmd 命令 输入 Edit 命令从而弹出汇编源码编辑框 在源码输入框中输入汇编源码 将编辑好的汇编源码保存到...
阅读全文
摘要:一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件...
阅读全文
摘要:转自:http://bbs.pediy.com/showthread.php?threadid=11315 一个简单的linux crackme的逆向前言 最不喜欢的就是写破解教程,酒后一时冲动,老夫卿发少年狂,许下将写一篇linux平台逆向的文章的诺言,作此文实非颇不得已。在此申明:本文在技术上非常初级,并没有用到什么高深的技术,本人水平亦有限,如有差错,还请见谅!开始之前的准备 正如C语言教程...
阅读全文
摘要:这段代码反汇编后,代码是什么呢? #include long test(int a,int b){ a = a + 3; b = b + 5;return a + b;}int main(int argc, char* argv[]){ printf("%d",test(10,90));return 0;} 先来看一个概貌 16: int main(int argc, char* argv[...
阅读全文
摘要:本节介绍File System和MTD技术 一 FS 熟知的FS有ext2,3,4.但是这些都是针对磁盘设备的。而ES中一般的存储设备为Flash,由于Flash的特殊性: Flash存储按照Block size进行划分,而一个BLS一般有几十K。(对比磁盘的一个簇才512个字节)。这么大的BLS有什么坏处呢?很明显,擦除一个BL就需要花费很长的时间了。 另外,FLASH操作,一次必须针对一个B...
阅读全文
摘要:先要讲讲这个问题是怎么来的。(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么)。 我在编译内核的时候,发现arch/arm/kernel目录下有一个这样的文件:vmlinux.lds.S。第一眼看上去,想想是不是汇编文件呢?打开一看,好像不是。那它是干嘛的?而且前面已经说过,make V=1的时候,发现这个文件的用处在ld命令中,即ld -...
阅读全文
摘要:上篇我们知道,kernel初始化后将启动init进程,那么这个进程将干些什么呢?除此之外,kernel还需要做些什么事情呢?(想想文件系统、根存储设备是在什么时候初始化的呢?) 先从文件系统初始化说起。以前一直不明白,有了kernel为何还需要一个文件系统?经过反复琢磨,明白一个道理,kernel加载到内存后,kernel运行起来是没有问题的,但是如果没有Root FS,就好像PC上没有硬盘......
阅读全文
摘要:最近几个月将Linux Kernel的大概研究了一下,下面需要进行深入详细的分析。主要将以S3C2440的一块开发板为硬件实体。大概包括如下内容: 1 bootloader分析,以uboot为主,结合具体开发板的情况。我的目标是解释清楚uboot的工作原理(说实话,分析过程中不太想被硬件绑架,但是需要以一个实际的例子 来做分析) 2 kernel部分,这就很多内容了。打算从kernel启动的流程开...
阅读全文
摘要:我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作。 我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,目前任职中兴通讯操作系统团队。他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作。近一个月之前,谢...
阅读全文
摘要:首先是一大堆的感谢,太多人的帮助,感谢不完了…………首先要说明,这个PCB工程的出现要感谢论坛上的台湾大哥 john800422 开源了自己的飞控板的工程文件,我这样的没啥基础的小弟们才能学会如何制板,也才能开发出这套F4的飞控。要感谢论坛上第一个做wifi小四轴的小哥,那小哥确实花了好多功夫才把RTT自带的那个基本没法用的wifi驱动移植上来的……要不是那小哥后来蒸发了,我怎么想买他的板子都买不...
阅读全文
摘要:本文的最主要目的在于抛砖引玉,阿莫论坛真的是非常好的一个论坛,没有这个论坛,没有那么多这个论坛上的前人无私的奉献和热烈的讨论,我想我是怎么也无法入门四轴的控制的。只是论坛上已经很多年都没有看到过新东西了,大家都把自己的成果悄悄藏了起来,于是这么多年了,在商业四轴已经泛滥的今天,论坛上依然还停留在给PID调参数这种初级阶段,甚至就是这么简单的东西人们尽然会把它抱得那么紧,生怕别人学会了,只是你没有往...
阅读全文
摘要:给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情。 首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么‘只’使用PID的四轴会在飞行中震荡,告诉大家为什么光使用PID并不能实现对四轴姿态‘足够好’的控制。文章中还是涉及了不少自控原理和其他控制相关的姿势,没有一点底子的话确实会看着很困惑(不然那么些人花好...
阅读全文
摘要:1.简介(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大...
阅读全文