dnsproxy in php
一个使用php通过tcp协议从远程dns服务器获取真实ip的小工具
地址:https://github.com/ilanyu/dnsproxy
一个使用php通过tcp协议从远程dns服务器获取真实ip的小工具
地址:https://github.com/ilanyu/dnsproxy
在 http://www.trinea.cn/android/android-java-execute-shell-commands/ 这里发现不错的库,转载下,避免失效等问题
主要介绍Android或Java应用中如何以默认用户或root用户执行Shell命令,ShellUtils的API介绍、使用及使用场景(如静默安装和卸载、修改hosts文件、拷贝文件)。使用纯Java实现,所以对Java程序同样适用。
既然找到这篇文章,一般都是对dns有一些了解了,就不讲dns是干嘛的了
首先我们来了解下dns污染问题手工解决怎么解决。
遇到的网站是用的PantoSchool .net,在数据库中发现大量非明文密码R2AKd+aZ0K4=,百度发现是123,打算分析下算法,下面是分析后给出算法
using System;
using System.IO;
using System.Security.Cryptography;
namespace DES
{
public class DECEncrypt
{
private byte[] arrDESIV;
private byte[] arrDESKey;
public DECEncrypt()
{
this.arrDESKey = new byte[] { 0x2a, 0x10, 0x5d, 0x9c, 0x4e, 4, 0xda, 0x20 };
this.arrDESIV = new byte[] { 0x37, 0x67, 0xf6, 0x4f, 0x24, 0x63, 0xa7, 3 };
}
public string Decrypt(string m_Need_Encode_String)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream stream2 = new MemoryStream(Convert.FromBase64String(m_Need_Encode_String));
CryptoStream stream = new CryptoStream(stream2, provider.CreateDecryptor(this.arrDESKey, this.arrDESIV), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
}
public string Encrypt(string m_Need_Encode_String)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream stream2 = new MemoryStream();
CryptoStream stream = new CryptoStream(stream2, provider.CreateEncryptor(this.arrDESKey, this.arrDESIV), CryptoStreamMode.Write);
StreamWriter writer = new StreamWriter(stream);
writer.Write(m_Need_Encode_String);
writer.Flush();
stream.FlushFinalBlock();
stream2.Flush();
return Convert.ToBase64String(stream2.GetBuffer(), 0, (int)stream2.Length);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(new DECEncrypt().Encrypt("123"));
Console.ReadLine();
}
}
}
C#的代码,在vs2015调试通过,加密和解密方法,以及用到的key和iv都给了
另外批评下这套系统,存在大量漏洞就算了,密码还是用的可逆算法,这和直接储存明文有啥区别?另外还存在超简单的默认用户名和默认密码
最近学校开学,新课程有安卓程序开发,结果第一个问题就是更新sdk的问题,好多同学都搞不定翻墙,一个一个教又不现实,试了下国内的在线更新镜像服务器,结果只有几k的速度,所以打算自己搞一个更新镜像服务器,方法如下:
1、到https://developer.android.com/sdk/index.html下载一个最新版本的sdk管理器,然后断网,打开管理器,然后报错,错误日志里有提到http://dl.google.com/android/repository/repository-11.xml这个地址(不同版本的sdk管理器,可能提示的网址不同)和http://dl.google.com/android/repository/addons_list-2.xml这个网址。
2、联网,打开刚才提到的两个网址,发现是xml格式的文档,仔细观察,发现有
<sdk:url>https://dl-ssl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip</sdk:url>、
<sdk:url>android-16_r05.zip</sdk:url>、
<sdk:url>https://dl-ssl.google.com/glass/gdk/addon.xml</sdk:url>
这三种地址,遇到和第一种地址差不多的就直接迅雷下载里面的下载地址,和第二种差不多的需要把网址补全,如这里就补成http://dl.google.com/android/repository/android-16_r05.zip,然后下载,遇到和第三种差不多的就打开xml文档,重复第2步操作,直到全部xml里的文件都下完,最后按照和dl.google.com一样的目录结构放置上就OK了。
3、下好所有的文件后,安装apache,将所有文件移到apache的网站根目录去,启动apache。
4、在需要更新android sdk的电脑上修改hosts,将dl.google.com和dl-ssl.google.com指向装有apache的服务器,再勾上强制使用http,就可以开始更新了。
我这里有一份下载好的,大小有20多个G,目前放在了学校的内网,如果谁有需要,可以联系我获取。