Skip to content

Commit

Permalink
Site updated: 2017-04-05 18:41:09
Browse files Browse the repository at this point in the history
  • Loading branch information
yuntai01 authored and yuntai01 committed Apr 5, 2017
1 parent 83f0ec7 commit 6487bf0
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><p>UITextField切换中文输入,选中键盘中被mark的中文字符时,iOS7中UITextField不会调用如下协议方法:</p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><p>UITextField切换中文输入,选中键盘中被mark的中文字符时,iOS7中UITextField不会调用如下协议方法:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;</div></pre></td></tr></table></figure>
<p>解决方法:</p>
<p>1、利用通知中心监听UITextFieldTextDidChangeNotification。</p>
Expand Down
2 changes: 1 addition & 1 deletion 2016/11/30/objc_msgSend 的正确使用姿势/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><p>首先需要import objc_msgSend 所在的头文件<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">#import &lt;objc/message.h&gt;</div></pre></td></tr></table></figure></p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><p>首先需要import objc_msgSend 所在的头文件<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">#import &lt;objc/message.h&gt;</div></pre></td></tr></table></figure></p>
<p>‘objc_msgSend’ 同时在 <objc message.h=""><objc runtime.h="">都有定义,需要进一步了解其异同。</objc></objc></p>
<p>在64位机器上运行‘objc_msgSend’,如果姿势不对,编译器不会提示警告,而是直接crash。</p>
<p>解决办法:</p>
Expand Down
2 changes: 1 addition & 1 deletion 2016/11/30/搭建GitHub个人博客/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><p>工具<br>markdown语法:(<a href="http://www.appinn.com/markdown/#header" target="_blank" rel="external">http://www.appinn.com/markdown/#header</a>)<br>Atom:(<a href="https://atom.io" target="_blank" rel="external">https://atom.io</a>)</p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><p>工具<br>markdown语法:(<a href="http://www.appinn.com/markdown/#header" target="_blank" rel="external">http://www.appinn.com/markdown/#header</a>)<br>Atom:(<a href="https://atom.io" target="_blank" rel="external">https://atom.io</a>)</p>
<h2 id="1-创建Github-域名和空间"><a href="#1-创建Github-域名和空间" class="headerlink" title="1. 创建Github 域名和空间"></a>1. 创建Github 域名和空间</h2><p>1.1注册</p>
<p>注册<a href="https://github.com/join?source=header-home" target="_blank" rel="external">Github</a>账号。</p>
<p>#注意:博客域名将会为username.github.io,所以username会影响到博客的域名。</p>
Expand Down
2 changes: 1 addition & 1 deletion 2017/03/29/Android反编译初探/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><h1 id="Apk反编译"><a href="#Apk反编译" class="headerlink" title="Apk反编译"></a>Apk反编译</h1><p>Apk反编译使用到的工具:<br>1、apktool (<a href="https://bitbucket.org/iBotPeaches/apktool/downloads/" target="_blank" rel="external">https://bitbucket.org/iBotPeaches/apktool/downloads/</a>)<br>2、enjarify (<a href="https://github.com/google/enjarify" target="_blank" rel="external">https://github.com/google/enjarify</a>)<br>3、Java Decompiler (<a href="http://jd.benow.ca" target="_blank" rel="external">http://jd.benow.ca</a>)</p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><h1 id="Apk反编译"><a href="#Apk反编译" class="headerlink" title="Apk反编译"></a>Apk反编译</h1><p>Apk反编译使用到的工具:<br>1、apktool (<a href="https://bitbucket.org/iBotPeaches/apktool/downloads/" target="_blank" rel="external">https://bitbucket.org/iBotPeaches/apktool/downloads/</a>)<br>2、enjarify (<a href="https://github.com/google/enjarify" target="_blank" rel="external">https://github.com/google/enjarify</a>)<br>3、Java Decompiler (<a href="http://jd.benow.ca" target="_blank" rel="external">http://jd.benow.ca</a>)</p>
<h2 id="1、apktool"><a href="#1、apktool" class="headerlink" title="1、apktool"></a>1、apktool</h2><p>功能:用于拆解安装包、重新打包。<br>下载地址: (<a href="https://bitbucket.org/iBotPeaches/apktool/downloads/" target="_blank" rel="external">https://bitbucket.org/iBotPeaches/apktool/downloads/</a>)<br>安装方法: (<a href="https://ibotpeaches.github.io/Apktool/install/" target="_blank" rel="external">https://ibotpeaches.github.io/Apktool/install/</a>)<br>使用方法: (<a href="https://ibotpeaches.github.io/Apktool/documentation/" target="_blank" rel="external">https://ibotpeaches.github.io/Apktool/documentation/</a>)<br>apktool安装时注意几点:<br>1、检查是否安装java环境,如果没有,请先安装java环境<br><img src="/images/Android反编译初探/apktool_java_install.png" alt=""><br>2、将apktool脚本变成可执行文件<br>图1:<br><img src="/images/Android反编译初探/apktool_install.png" alt=""><br>图2:<br><img src="/images/Android反编译初探/apktool_shell.png" alt=""><br>图1红框内的脚本当右键保存的如果是apktool.txt格式的文件,本人保存的时候就是txt格式,见图2。当我使用Sublime Text编辑器将其保存为apktool.sh时,无法通过’chmod +x’将其变为可执行文件。最终使用Atom编辑器将其保存为apktool,此时这可使用’chmod +x’将其变为可执行文件。<br>Sublime Text2编辑器<br><img src="/images/Android反编译初探/apktool_shell_sublime_1.png" alt=""><br><img src="/images/Android反编译初探/apktool_shell_sublime_2.png" alt=""><br>Atom编辑器<br><img src="/images/Android反编译初探/apktool_shell_atom_1.png" alt=""><br><img src="/images/Android反编译初探/apktool_shell_atom_2.png" alt=""><br>最终得到如下结果<br><img src="/images/Android反编译初探/apktool_chmod.png" alt=""><br>其实apktool脚本并不是必须的,作用就是在执行apktool.jar时,不必每次都要不厌其烦的输入:java -jar apktool.jar<br>关于这一点网站上也Note出来了:<br><em>Note - Wrapper scripts are not needed, but helpful so you don’t have to type java -jar apktool.jar over and over.</em><br>未使用apktool.sh wrapper shell script时的格式<br><code>java -jar apktool.jar yourapp.apk -o yourapp</code><br>使用enjarify.sh wrapper shell script时的格式<br><code>apktool yourapp.apk -o yourapp</code></p>
<h2 id="2、enjarify"><a href="#2、enjarify" class="headerlink" title="2、enjarify"></a>2、enjarify</h2><p>功能:用于反编译dex文件,得到java源代码,与<a href="https://sourceforge.net/projects/dex2jar/" target="_blank" rel="external">dex2jar</a>类似。<br>下载地址:(<a href="https://github.com/google/enjarify" target="_blank" rel="external">https://github.com/google/enjarify</a>)<br>这个工具是谷歌官方开源的用于反编译dex文件的。<br>enjarify安装注意几点:<br>1、检查是否安装python3<br>因为enjarify是一个纯的python3应用,所以必须确保已经安装了python3,如果没有,则需要安装。<br>此时又要祭出大杀器 <em>Homebrew</em><br>安装Python 2.7的话,请输入:<br><code>$ brew install python</code><br>如果你选择使用Python3,只需要将python替换成python3即可。<br><code>$ brew install python3</code><br>想查看可以安装哪些Python版本的话,可以通过下面的命令在Homebrew上搜索。<br><code>$ brew search python</code><br>这个命令会列出可以安装的全部Python版本。<br><img src="/images/Android反编译初探/enjarify_python_install_versions.png" alt=""><br>2、为了方便原则,方便使用enjarify.sh脚本窍门<br>在终端里执行以下语句<br><code>ln -s &quot;$PWD/enjarify.sh&quot; usr/local/bin/enjarify</code><br>$PWD指enjarify所在的物理位置,我的电脑位置如下:<br><code>/Users/yuntai01/Desktop/下载/enjarify-1.0.3</code><br>执行完,则可在对应的文件夹中找到:<br><img src="/images/Android反编译初探/enjarify_shell_install.png" alt=""><br>未使用enjarify.sh wrapper shell script时的格式<br><code>python3 -O -m enjarify.main yourapp.apk -o yourapp.jar</code><br>使用enjarify.sh wrapper shell script时的格式<br><code>enjarify yourapp.apk -o yourapp.jar</code></p>
<h2 id="3、Java-Decompiler"><a href="#3、Java-Decompiler" class="headerlink" title="3、Java Decompiler"></a>3、Java Decompiler</h2><p>功能:查看java源代码<br>下载地址:(<a href="http://jd.benow.ca)选择jd-gui即可。" target="_blank" rel="external">http://jd.benow.ca)选择jd-gui即可。</a><br>用法:启动jd-gui,直接将enjarify反编译出来得到jar包拖进jd-gui中即可。<br><img src="/images/Android反编译初探/jd_gui_pkg.png" alt=""><br><img src="/images/Android反编译初探/jd_gui_show.png" alt=""></p>
Expand Down
2 changes: 1 addition & 1 deletion 2017/03/31/iOS逆向实践/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><h2 id="iOS设备越狱"><a href="#iOS设备越狱" class="headerlink" title="iOS设备越狱"></a>iOS设备越狱</h2><p>工具:PP助手、TaiG、evasi0n (<a href="http://evasi0n.com" target="_blank" rel="external">http://evasi0n.com</a>)<br>设备:iPhone6,iOS8.3<br>由于我使用了PP助手对手机设备进行越狱操作的,没有什么技术性,这里就暂时略过,以后再研究下使用TaiG、evasi0n等工具进行越狱再补上。</p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><h2 id="iOS设备越狱"><a href="#iOS设备越狱" class="headerlink" title="iOS设备越狱"></a>iOS设备越狱</h2><p>工具:PP助手、TaiG、evasi0n (<a href="http://evasi0n.com" target="_blank" rel="external">http://evasi0n.com</a>)<br>设备:iPhone6,iOS8.3<br>由于我使用了PP助手对手机设备进行越狱操作的,没有什么技术性,这里就暂时略过,以后再研究下使用TaiG、evasi0n等工具进行越狱再补上。</p>
<h2 id="查看越狱iOS设备APP文件夹"><a href="#查看越狱iOS设备APP文件夹" class="headerlink" title="查看越狱iOS设备APP文件夹"></a>查看越狱iOS设备APP文件夹</h2><p>工具:PP助手、iTools、iFunBox<br>iOS8.3之后由于苹果加强了沙盒的安全性,导致工具无法直接查看到APP的沙盒文件夹结构,所以要查看iOS设备沙盒文件就需要进行越狱之后使用文件管理工具查看。<br>文件查看工具查看越狱后的iOS设备文件夹结构如下:<br><img src="/images/iOS逆向实践/iOS_reverse_watch_divice_dir.png" alt=""><br>如果想要查看APP沙盒文件夹结构,需要将iPhone越狱后再安装AFC2。<br>步骤如下:<br>1、打开Cydia<br>2、打开“搜索”Tab项<br>3、输入“Apple File Conduit ‘2’”<br>4、安装“Apple File Conduit ‘2’”<br>此时可通过文件查看工具查看APP沙盒文件夹结构如下:<br><img src="/images/iOS逆向实践/iOS_reverse_watch_app_dir.png" alt=""></p>
<h2 id="远程连接iOS设备"><a href="#远程连接iOS设备" class="headerlink" title="远程连接iOS设备"></a>远程连接iOS设备</h2><p>工具:Terminal.app<br>1、手机中打开Cydia,打开“搜索”Tab项,输入“OpenSSH’”,安装“OpenSSH”<br>2、确保手机已经连接了WIFI并且你的手机的WIFI<br>和你的电脑要在同一个局域网内,打开终端输入:<br>ssh root@xx.xx.xx.xx,(xx.xx.xx.xx)为你的手机的IP地址—&gt;Enter<br>3、接着会提示你输入password:<br>这里的密码一般情况下是alpine,但是如果你更改过的话就用你更改的[这里的密码是手机openssh的密码,不是电脑密码也不是手机解锁密码]<br>4、然后来输入吧,通过cd可以进入到制定的文件夹目录<br>iPhone6:~ root# cd /usr/bin<br><img src="/images/iOS逆向实践/iOS_reverse_connect_remote.png" alt=""></p>
<h2 id="APP砸壳"><a href="#APP砸壳" class="headerlink" title="APP砸壳"></a>APP砸壳</h2><p>工具:Clutch、Terminal.app、iFunBox<br>Clutch源码:(<a href="https://github.com/KJCracks/Clutch/releases" target="_blank" rel="external">https://github.com/KJCracks/Clutch/releases</a>)</p>
Expand Down
2 changes: 1 addition & 1 deletion 2017/04/01/CLI/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ <h1 class="post-title" itemprop="name headline">



<script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><h2 id="CLI(全称:command-line-interface,中文名:命令行界面)"><a href="#CLI(全称:command-line-interface,中文名:命令行界面)" class="headerlink" title="CLI(全称:command-line interface,中文名:命令行界面)"></a>CLI(全称:command-line interface,中文名:命令行界面)</h2><p>在Mac上安装各种程序时,除了直接使用GUI(图形用户界面)方式安装外,更方便的莫过于通过CLI来安装各种程序。<br>由于本人从事技术方向不同,导致接触的这些CLI也不是很多,接触较多是brew、npm、gem等。<br>homebrew(常用软件)<br>gem(ruby软件)<br>npm(node.js软件)</p>
<script src="/assets/js/APlayer.min.js"> </script><script src="/assets/js/DPlayer.min.js"> </script><h2 id="CLI(全称:command-line-interface,中文名:命令行界面)"><a href="#CLI(全称:command-line-interface,中文名:命令行界面)" class="headerlink" title="CLI(全称:command-line interface,中文名:命令行界面)"></a>CLI(全称:command-line interface,中文名:命令行界面)</h2><p>在Mac上安装各种程序时,除了直接使用GUI(图形用户界面)方式安装外,更方便的莫过于通过CLI来安装各种程序。<br>由于本人从事技术方向不同,导致接触的这些CLI也不是很多,接触较多是brew、npm、gem等。<br>homebrew(常用软件)<br>gem(ruby软件)<br>npm(node.js软件)</p>
<p>1、RVM<br>以前在搭建某个环境时,按照官方文档打开Terminal吧嗒吧嗒各种命令敲一遍,很愉快的安装完毕。当需要改动某个程序的配置文件时一下傻眼了,<br>完全分不清之前敲的那些命令是干啥的,安装的这些包都放到哪里去了。<br>i) RVM:<br>上面提到gem,那就不得不说说RVM,RVM(Ruby Version Manager),用于安装Ruby环境,管理多个Ruby环境。<br>RVM安装:<br><strong><code>$ curl -sSL https://get.rvm.io | bash -s stable</code></strong><br>RVM罗列出Ruby版本列表:<br><img src="/images/CLI/cli_rvm_list.png" alt=""><br>RVM安装Ruby版本:<br><strong><code>$ rvm install 2.3.0</code></strong><br>RVM切换已经安装的Ruby环境:<br><img src="/images/CLI/cli_rvm_use.png" alt=""><br>ii) gem:<br>RubyGems是一个方便而强大的Ruby程序包管理器(使用Ruby开发出来的程序包被称为gems)。<br>gem是RubyGems管理gems包的命令。<br>gem无需单独安装,当Ruby环境安装完成时,RubyGems一般也安装了,直接使用gem命令即可。<br>通过gem命令安装ruby程序:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">gem install Cocoa pods</div><div class="line">gem install sigh</div><div class="line">gem install deliver</div><div class="line">gem install gym</div></pre></td></tr></table></figure></p>
<p>罗列出gem安装的Ruby程序:<br><img src="/images/CLI/cli_gem_list.png" alt=""><br>查看当前Ruby环境版本:<br><img src="/images/CLI/cli_ruby_version.png" alt=""><br>更新已安装的Ruby程序:<br><strong><code>$ gem update cocoapods</code></strong><br>有时候明明提示安装的Ruby程序有新的版本时,但是通过gem update命令去更新时,它就是提示“Nothing to update”,如下所示:<br><img src="/images/CLI/cli_gem_updage_error.png" alt=""><br>此时可以查看自己的gem源,更换其他gem源尝试一下。</p>
<blockquote>
Expand Down
Loading

0 comments on commit 6487bf0

Please sign in to comment.