<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>autorun</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>http://www.autorun.top/</id>
  <link href="http://www.autorun.top/" rel="alternate"/>
  <link href="http://www.autorun.top/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, autorun</rights>
  <subtitle>一个专注于技术分享的个人博客</subtitle>
  <title>autorun's blog</title>
  <updated>2026-04-14T03:34:20.548Z</updated>
  <entry>
    <author>
      <name>autorun</name>
    </author>
    <category term="Frida" scheme="http://www.autorun.top/tags/Frida/"/>
    <content>
      <![CDATA[<h1 id="Frida编译与魔改"><a href="#Frida编译与魔改" class="headerlink" title="Frida编译与魔改"></a>Frida编译与魔改</h1><blockquote><p>总觉得魔改个Frida方便些，网上说16版本稳定一些，但是我pixel6老是死机o(╥﹏╥)o</p><p>没办法，所以此次使用的Frida版本为17.4.0，ubuntu版本为24.04.02</p><p>如果有网络部分出现问题可以试试神奇的”魔法”</p></blockquote><h2 id="一、编译环境安装及测试"><a href="#一、编译环境安装及测试" class="headerlink" title="一、编译环境安装及测试"></a>一、编译环境安装及测试</h2><h3 id="安装基础依赖"><a href="#安装基础依赖" class="headerlink" title="安装基础依赖"></a>安装基础依赖</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> apt install build-essential git python3-pip lib32stdc++-9-dev libc6-dev-i386 curl unzip</span><br></pre></td></tr></table></figure><ul><li><p><code>build-essential</code>: 包含 C&#x2F;C++ 编译器 (gcc&#x2F;g++) 和 <code>make</code> 等基础开发工具。</p></li><li><p><code>git</code>: 版本控制工具，用于从 GitHub 下载源码。</p></li><li><p><code>python3-pip</code>: Python 的包管理器，用于安装后续的 Python 依赖。</p></li><li><p><code>lib32stdc++-9-dev</code> &amp; <code>libc6-dev-i386</code>: 32 位 C++ 标准库和 C 库的开发文件，交叉编译 32 位架构。（需要编译32位可以安装）</p></li><li><p><code>curl</code> &amp; <code>unzip</code>: 用于下载和解压文件。</p></li></ul><p>Python安装<code>lief</code>库</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip3 install lief --break-system-packages</span><br></pre></td></tr></table></figure><ul><li><code>--break-system-packages</code>可以在当前环境中强制安装 Python 包</li></ul><h3 id="下载源码"><a href="#下载源码" class="headerlink" title="下载源码"></a>下载源码</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --recurse-submodules -b 17.4.0 https://github.com/frida/frida</span><br></pre></td></tr></table></figure><ul><li><code>--recurse-submodules</code>: 这是编译 Frida 关键的参数之一。作用是克隆主项目的同时，自动下载所有这些被依赖的子项目。</li><li><code>-b 17.4.0</code>: <code>-b</code> 参数用来指定一个特定的版本。</li></ul><h3 id="查看对应的Node-js和NDK版本"><a href="#查看对应的Node-js和NDK版本" class="headerlink" title="查看对应的Node.js和NDK版本"></a>查看对应的Node.js和NDK版本</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">autorun@autorun-VMware-Virtual-Platform: ~/frida/subprojects/frida-nodes$ <span class="built_in">cat</span> package.json | grep node</span><br><span class="line"><span class="string">&quot;node&quot;</span>:<span class="string">&quot;&gt;=16&quot;</span></span><br><span class="line"><span class="string">&quot;@types/node&quot;</span>: <span class="string">&quot;^22.13.16&quot;</span>, </span><br><span class="line"><span class="string">&quot;ts-node&quot;</span>: <span class="string">&quot;^10.9.2&quot;</span>,</span><br><span class="line"><span class="string">&quot;install&quot;</span>: <span class="string">&quot;node scripts/install.js&quot;</span>,</span><br><span class="line"><span class="string">&quot;test&quot;</span>: <span class="string">&quot;node --loader ts-node/esm --expose-gc node_modules/mocha/bin/_mocha --extension ts test/*.ts&quot;</span>, </span><br><span class="line"><span class="string">&quot;url&quot;</span>: <span class="string">&quot;https: //github. com/frida/frida-node.git&quot;</span>,</span><br><span class="line"><span class="string">&quot;url&quot;</span>: <span class="string">&quot;https://github. com/frida/frida-node/issues&quot;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>通过”node”: “&gt;&#x3D;16”<code>，</code>“@types&#x2F;node”: “^22.13.16”，可以确定node版本为22，版本尽量靠近即可。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">autorun@autorun-VMware-Virtual-Platform: ~/frida$ <span class="built_in">cat</span> releng/env_android.py | grep NDK_REQUIRED</span><br></pre></td></tr></table></figure><p>这个在网上没有找到，还是我一个个文档翻才找到的  <strong>(◡ᴗ◡✿)</strong></p><p>虽然操作有点丑陋</p><p>通过NDK_REQUIED &#x3D; 25，我们选择r25版本的NDK</p><h3 id="安装对应的node-js和ndk"><a href="#安装对应的node-js和ndk" class="headerlink" title="安装对应的node.js和ndk"></a>安装对应的node.js和ndk</h3><p><strong>安装node.js</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 安装nvm</span></span><br><span class="line">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash</span><br><span class="line"><span class="built_in">source</span> ~/.bashrc</span><br><span class="line"><span class="comment"># 安装 node12</span></span><br><span class="line">nvm install 22.13</span><br><span class="line"><span class="comment"># 使用12版本</span></span><br><span class="line">nvm use 22</span><br><span class="line"><span class="comment"># 验证node.js是否可用</span></span><br><span class="line">node -v</span><br></pre></td></tr></table></figure><p><strong>安装ndk r25</strong></p><p>具体版本可以去官网<a href="https://github.com/android/ndk/wiki/Unsupported-Downloads%E7%9C%8B%E7%9C%8B%E6%9C%89%E5%93%AA%E4%BA%9B">https://github.com/android/ndk/wiki/Unsupported-Downloads看看有哪些</a></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 创建文件夹，解压的ndk文件到时候放这里，位置自行选择</span></span><br><span class="line"><span class="built_in">mkdir</span> -p ~/Android/Sdk/ndk</span><br><span class="line"><span class="comment"># 下载</span></span><br><span class="line">wget https://dl.google.com/android/repository/android-ndk-r25c-linux.zip</span><br><span class="line"><span class="comment"># 解压</span></span><br><span class="line">unzip android-ndk-r25c-linux.zip -d ~/Android/Sdk/ndk</span><br><span class="line"></span><br><span class="line"><span class="comment"># 验证 NDK 是否可用</span></span><br><span class="line">ndk-build --version</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置当前shell环境变量，如果要长期生效需要自己写进~/.bashrc中</span></span><br><span class="line"><span class="built_in">export</span> ANDROID_NDK_ROOT=<span class="string">&quot;<span class="variable">$HOME</span>/Android/Sdk/ndk/android-ndk-r25c&quot;</span></span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$ANDROID_NDK_ROOT</span>:<span class="variable">$PATH</span></span><br></pre></td></tr></table></figure><h3 id="编译测试"><a href="#编译测试" class="headerlink" title="编译测试"></a>编译测试</h3><p>在Frida目录直接make，会列出支持的所有编译选项，也会自动下载编译链<br>尝试</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">./configure --host=android-arm64</span><br><span class="line">make -j8</span><br></pre></td></tr></table></figure><p><code>-j8</code>中的8可以改为其它数字，意思是多线程运行数，注意不要超过CPU支持最大线程<br>如果能够顺利编译出Frida并顺利运行即代表环境依赖完备</p><p>编译结果一般在<code>frida/build/subprojects</code>中</p><h3 id=""><a href="#" class="headerlink" title="? ? ?"></a>? ? ?</h3><p>本来第一次莫名其妙的报了好多错，修了好久。</p><p>百度,必应,Google,ChatGPT,Stack Overflow都去过了。</p><p>好不容易搞好了。还重新搞了一遍，结果你告诉我一遍过?</p><p>果然编译前一定要看黄历  o(╥﹏╥)o</p><h2 id="二、去特征"><a href="#二、去特征" class="headerlink" title="二、去特征"></a>二、去特征</h2><h4 id="Florida"><a href="#Florida" class="headerlink" title="Florida"></a>Florida</h4><p>这里采用的是<a href="https://github.com/Ylarod/Florida%E7%9A%84patch">https://github.com/Ylarod/Florida的patch</a></p><p>先下载并解压其source.zip在自定义目录</p><p>最后好将<code>/frida-core</code>patch文件中的<strong>ggbond</strong>修改，以防针对性检测</p><p>执行patch，之后再进行编译</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">root@autorun-VMware-Virtual-Platform:/home/autorun/frida/build/subprojects/frida-core# git am /home/autorun/Florida-17.4.0/patches/frida-core/*.patch</span><br><span class="line">root@autorun-VMware-Virtual-Platform:/home/autorun/frida/build/subprojects/frida-gum# git am /home/autorun/Florida-17.4.0/patches/frida-gum/*.patch</span><br></pre></td></tr></table></figure><p>如出现报错如下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">[257/299] Generating subprojects/frida...frida-data-agent with a custom <span class="built_in">command</span></span><br><span class="line">python3: can<span class="string">&#x27;t open file &#x27;</span>/home/autorun/frida/build/subprojects/frida-core/src/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py<span class="string">&#x27;: [Errno 2] No such file or directory</span></span><br><span class="line"><span class="string">python3: can&#x27;</span>t open file <span class="string">&#x27;/home/autorun/frida/build/subprojects/frida-core/src/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py&#x27;</span>: [Errno 2] No such file or directory</span><br><span class="line">python3: can<span class="string">&#x27;t open file &#x27;</span>/home/autorun/frida/build/subprojects/frida-core/src/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py<span class="string">&#x27;: [Errno 2] No such file or directory</span></span><br><span class="line"><span class="string">python3: can&#x27;</span>t open file <span class="string">&#x27;/home/autorun/frida/build/subprojects/frida-core/src/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py&#x27;</span>: [Errno 2] No such file or directory</span><br><span class="line">anti-anti-frida error. Code: 512</span><br><span class="line">anti-anti-frida error. Code: 512</span><br><span class="line">anti-anti-frida error. Code: 512</span><br><span class="line">anti-anti-frida error. Code: 512</span><br><span class="line">[299/299] Generating subprojects/frida...ect/frida-inject with a custom <span class="built_in">command</span></span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#执行这一句找出问题文件，并将这一句修改为“/../../../../subprojects/frida-core/src/anti-anti-frida.py”</span></span><br><span class="line">grep -rn <span class="string">&quot;/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py&quot;</span></span><br></pre></td></tr></table></figure><p>再次编译即可</p>]]>
    </content>
    <id>http://www.autorun.top/post/frida-hide.html</id>
    <link href="http://www.autorun.top/post/frida-hide.html"/>
    <published>2025-11-30T15:56:11.000Z</published>
    <summary>
      <![CDATA[<h1 id="Frida编译与魔改"><a href="#Frida编译与魔改" class="headerlink" title="Frida编译与魔改"></a>Frida编译与魔改</h1><blockquote>
<p>总觉得魔改个Frida方便些，网上说16版本稳定一]]>
    </summary>
    <title>Frida编译与魔改</title>
    <updated>2026-04-14T03:34:20.548Z</updated>
  </entry>
  <entry>
    <author>
      <name>autorun</name>
    </author>
    <category term="网络爬虫" scheme="http://www.autorun.top/categories/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/"/>
    <category term="爬虫" scheme="http://www.autorun.top/tags/%E7%88%AC%E8%99%AB/"/>
    <content>
      <![CDATA[<h1 id="VCG爬虫"><a href="#VCG爬虫" class="headerlink" title="VCG爬虫"></a>VCG爬虫</h1><h2 id="目标：www-vcg-com"><a href="#目标：www-vcg-com" class="headerlink" title="目标：www.vcg.com"></a>目标：<a href="http://www.vcg.com/">www.vcg.com</a></h2><h2 id="第三方库：requests-lxml-pypinyin"><a href="#第三方库：requests-lxml-pypinyin" class="headerlink" title="第三方库：requests,lxml,pypinyin"></a>第三方库：requests,lxml,pypinyin</h2><p>好久没写爬虫了，练练手  </p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> requests</span><br><span class="line"><span class="keyword">from</span> lxml <span class="keyword">import</span> etree</span><br><span class="line"><span class="keyword">import</span> random</span><br><span class="line"><span class="keyword">from</span> pypinyin <span class="keyword">import</span> lazy_pinyin</span><br><span class="line"></span><br><span class="line">headers_list = (</span><br><span class="line">    <span class="string">&quot;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Opera/8.0 (Windows NT 5.1; U; en)&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11&quot;</span>,</span><br><span class="line">    <span class="string">&quot;Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16&quot;</span></span><br><span class="line">)</span><br><span class="line"></span><br><span class="line">headers = &#123;<span class="string">&quot;User-Agent&quot;</span>: random.choice(headers_list)&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">vcg</span>(<span class="params">_input_, local=<span class="literal">False</span>, page=<span class="number">1</span>, iptool=&#123;&#125;</span>):</span><br><span class="line">    word = <span class="string">&quot;&quot;</span>.join(lazy_pinyin(_input_))</span><br><span class="line">    url = <span class="string">f&quot;https://www.vcg.com/creative-image/<span class="subst">&#123;word&#125;</span>/?page=<span class="subst">&#123;page&#125;</span>&quot;</span></span><br><span class="line">    response = requests.get(url, headers=headers, timeout=<span class="number">10</span>, proxies=iptool)</span><br><span class="line"></span><br><span class="line">    html = etree.HTML(response.text)</span><br><span class="line">    img_list = html.xpath(<span class="string">&#x27;//div[@class=&quot;gallery_inner&quot;]/figure/a/img/@data-src&#x27;</span>)</span><br><span class="line">    img = [<span class="string">f&quot;https://<span class="subst">&#123;i.split(<span class="string">&#x27;//&#x27;</span>)[<span class="number">1</span>]&#125;</span>&quot;</span> <span class="keyword">for</span> i <span class="keyword">in</span> img_list]</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span> local:</span><br><span class="line">        <span class="keyword">for</span> img_url <span class="keyword">in</span> img:</span><br><span class="line">            file_name = img_url.split(<span class="string">&quot;/&quot;</span>)[-<span class="number">1</span>]</span><br><span class="line">            response = requests.get(img_url, headers=headers, timeout=<span class="number">10</span>, proxies=iptool)</span><br><span class="line">            <span class="keyword">with</span> <span class="built_in">open</span>(<span class="string">f&#x27;./<span class="subst">&#123;file_name&#125;</span>&#x27;</span>, <span class="string">&quot;wb&quot;</span>) <span class="keyword">as</span> f:</span><br><span class="line">                f.write(response.content)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">f&quot;<span class="subst">&#123;file_name&#125;</span> 下载完成&quot;</span>)</span><br><span class="line">    <span class="keyword">else</span>:</span><br><span class="line">        <span class="keyword">return</span> img</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">vcg(<span class="string">&quot;星空&quot;</span>, local=<span class="literal">True</span>)</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>http://www.autorun.top/post/vcg-spider.html</id>
    <link href="http://www.autorun.top/post/vcg-spider.html"/>
    <published>2025-09-30T12:42:28.000Z</published>
    <summary>
      <![CDATA[<h1 id="VCG爬虫"><a href="#VCG爬虫" class="headerlink" title="VCG爬虫"></a>VCG爬虫</h1><h2 id="目标：www-vcg-com"><a href="#目标：www-vcg-com" class="head]]>
    </summary>
    <title>VCG爬虫</title>
    <updated>2026-04-14T03:34:20.548Z</updated>
  </entry>
  <entry>
    <author>
      <name>autorun</name>
    </author>
    <category term="生活" scheme="http://www.autorun.top/categories/%E7%94%9F%E6%B4%BB/"/>
    <category term="生活" scheme="http://www.autorun.top/tags/%E7%94%9F%E6%B4%BB/"/>
    <content>
      <![CDATA[<h1 id="My-First-Blog"><a href="#My-First-Blog" class="headerlink" title="My First Blog"></a>My First Blog</h1><br><strong>我的第一个博客    <br>2025-9    <br>(★≧▽^))★☆    <br><p><code>Hello World</code></p>]]>
    </content>
    <id>http://www.autorun.top/post/my-frist-blog.html</id>
    <link href="http://www.autorun.top/post/my-frist-blog.html"/>
    <published>2025-09-27T07:24:58.000Z</published>
    <summary>
      <![CDATA[<h1 id="My-First-Blog"><a href="#My-First-Blog" class="headerlink" title="My First Blog"></a>My First Blog</h1><br>
<strong>我的第一个博客    

<br]]>
    </summary>
    <title>My First Blog</title>
    <updated>2026-04-14T03:34:20.548Z</updated>
  </entry>
</feed>
