<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/h82849</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; h82849]]></copyright><item><title><![CDATA[Java字符串的定义以及使用场景]]></title><link>https://blog.youkuaiyun.com/h82849/article/details/107165208</link><guid>https://blog.youkuaiyun.com/h82849/article/details/107165208</guid><author>h82849</author><pubDate>Mon, 06 Jul 2020 18:37:44 +0800</pubDate><description><![CDATA[我们先要记住三者的特征：



String 字符串常量

StringBuffer 字符串变量（线程安全）

StringBuilder 字符串变量（非线程安全）

一、定义



查看API会发现，String、StringBuffer、StringBuilder都实现了 CharSequence接口，虽然它们都与字符串相关，但是其处理机制不同。

String：是不可改变的量，也就是创建后就不能在修改了。

StringBuffer：是一个可变字符串序列，它与String一样，在内存中保存的都是一..]]></description><category></category></item><item><title><![CDATA[字符串比较，居然暗藏玄机]]></title><link>https://blog.youkuaiyun.com/h82849/article/details/107165167</link><guid>https://blog.youkuaiyun.com/h82849/article/details/107165167</guid><author>h82849</author><pubDate>Mon, 06 Jul 2020 18:36:11 +0800</pubDate><description><![CDATA[面试编程基本功的时候，很常见的一个题目是：
判断两个字符串是否完全相同？

很多同学能够很快的写出对应的代码：


public static boolean isEqual(byte[] a, byte[] b) {

    // 先判断长度是否相同

    if (a.length != b.length) {

        // 长度不同，返回false

        return false;

    }



    // 一个一个字符，循环遍历判断

    for (int i ]]></description><category></category></item><item><title><![CDATA[C++代码段加密]]></title><link>https://blog.youkuaiyun.com/h82849/article/details/107165063</link><guid>https://blog.youkuaiyun.com/h82849/article/details/107165063</guid><author>h82849</author><pubDate>Mon, 06 Jul 2020 18:30:32 +0800</pubDate><description><![CDATA[我们在逆向破解的时候通常第一方法是找到关键字符串，关键代码等，他们都是存在于代码段的，那么只要把代码段进行加密，这种方式就不可行了。


先在加壳器中加密，这使用简单的亦或加密。


/加密代码段
//1.获取代码段首地址
char* pTarText = GetSecHeader(pTarBuff, ".text")-&gt;PointerToRawData + pTarBuff;
//2.获取代码段实际大小
int nSize = GetSecHeader(pTarBuff, ".text")-&gt;]]></description><category></category></item><item><title><![CDATA[C++处理stub.dll]]></title><link>https://blog.youkuaiyun.com/h82849/article/details/107164990</link><guid>https://blog.youkuaiyun.com/h82849/article/details/107164990</guid><author>h82849</author><pubDate>Mon, 06 Jul 2020 18:28:49 +0800</pubDate><description><![CDATA[配置stub工程
将工程设置release版本，如果不想代码被优化，可以禁止优化。


大概流程如下：

① 将数据段,只读数据段和代码段进行合并

② 编写代码获取API的地址

③ 加入混淆指令,反调试

④ 解密/解压缩

⑤ 加密IAT等等

之后会把存根文件stub.dll的.data，.rdata这2个区段合并到.text段并设置为可读可写可执行属性，需要前置代码


//把数据段融入代码段
#pragma comment(linker,"/merge:.data=.text")
//把只读数据]]></description><category></category></item></channel></rss>