加密解密

异或运算分析方法，为了简单，这里我们不再一封包作为分析，因为封包要从16位到10位的步骤，很麻烦，我们直接看下面的异或。
从一个进制到另一个进制是一中异或运算，而且是单满映射，所谓单满映射，意思是每一个象都有原象，每一个原象都有象，例如我们的映射是从16进制到10进制，象，就是10进制里面的所有的数，而16进制里面的数就是原象，每一个10进制的数都唯一对应一个16进制的数，所以说所有象都有唯一一个原象，而反过来，每一个16进制也唯一对应一个10进制的数，所以每一个象都有且只有一个象，这样的映射就是单满映射！这样的映射使用起来效率最高，可以知道每次调用函数返回的值都是有用的，下面这个也是单满影射：
但是这个运算要分析起来是复杂的，我们从简单的分析，你想一想，如果我们这样对应，0对应A，1对应B，这样一个一个对应下去，那么如果你的生日是：1986年2月14日，如果我们把生日加密，按照我们的映射，结果就是这样了，BJIG年C月BE 日，看看这个结果，是不是不那么容易认了，这个就是加密，如果改变对应的开头，不是0对应A而是0对应E那么会是怎么样呢？当然会变的，异或运算本身简单，但是可以看出来，加密还是很有效的！
那么我们怎么知道一个封包是不是异或运算加密的呢？
我们不知道！
对于这个回答，大家也许有写心灰，其实完全没有必要，你知道我早上吃的什么？不知道吧？当然不知道，谁知道呢？但是我们可以知道，要么吃的食物，要么喝的水，要么什么都没有吃，如果没吃，很简单嘛，如果吃了，我把所有食物都说一遍，总有一个是你吃的吧，所以，我们虽然不知道封包具体使用异或运算没有，但是我们可以假设已经采用了，然后继续分析！异或运算不改变数据的任何性质，不会影响任何分析。
那么怎么分析呢？如果一个封包确实是异或运算加密的，我们如何可以找到它的加密方法呢？这就要采用枚举法来做了，所谓的枚举法，也称穷举法，如果你认为你发封包应该是数字，那么就找到数字的映射，可以建立方程，比如：y=F(x)
那么我们找几个点，称为已知点，然后解方程，例如，我们我们已经知道：a对应的是0，d对应的是3,f对应的是5，那么我们可以这样做，F(a)=0,F(d)=3,
而这种异或运算都是线性的，也就是可以认为是一维的，那么有两个点就可以算出来了，我们可以认为，映射就是：F(x)=Asc(x)-97,这里是Asc（）是VB里面的一个函数，就是返回该字母的Ascii码，这样，我们可以带f对应5进行检验，也许你会问我怎么来这些点，这些可以确定函数的点从那里来？其实很简单，举个例子，你要知道游戏里面钱的数字与封包里面数字的联系怎么办，要确定这个对应关系，就要自己去找一些点来确定，我们可以通过一些方法来找到的，例如，我们扔掉一元钱，看看数字是多少，这里就找到一点了，一个点如果确定不了，可以多取一些点来确定，如果还是不行，那么再来，如果是不规则的影射，就要取遍所有点，当然象钱这样的数字，由于可边范围太大，不可能建立想我们给的图那样的非规则影射，否则很难计算，影响游戏速度，所以可以肯定：游戏里面钱的数字的加密一定是规则的运算加密的，至于是不是异或运算加密的就不知道了！但是我们可以假设是，然后做我们想做的事啊！
当然，异或运算的规则是自己建立的，可以有无穷多，要给大家讲解所有的破解方法是不行的，大家是要多动手分析才行，这个需要的是经验和技巧，你要从别人的角度想，“如果我要加密，我会怎么做能做到计算简单，加密性好，而且加密函数又容易设计”，想多了，你就知道其实异或运算加密是可以比较容易地分析出来的，当然，光靠我们的大脑是痛苦的，何不找一些工具来帮助分析呢？很多黑客软件都具有分析加密数据的功能，试者学习一些，会对您的封包破解很有帮助的，也许他们能提供更好的破解思路也不一定！

| 五代科技 |
http://www.5dai.com