mirror of
https://github.com/CoderSherlock/CoderSherlock.github.io.git
synced 2026-06-12 23:58:11 -07:00
Refurnish
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
I""{"source"=>"/Users/pengzhan/Github/codersherlock.github.io", "destination"=>"/Users/pengzhan/Github/codersherlock.github.io/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/archivers/:title"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>[], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"", "show_dir_listing"=>false, "permalink"=>"/archivers/:title", "paginate_path"=>"page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false, "syntax_highlighter"=>"rouge"}, "title"=>"Stop Talking, Start Doing - 停止空想,开始行动", "author"=>"Pengzhan Hao", "avatar"=>"/static/avatar.jpg", "email"=>"haopengzhan@gmail.com", "description"=>"My personal blog, with some boring research staff and some tricks I was fancy to. I'll try my best to make this blog fun and useful. Not just a place I complain about all happens in my Lab.\n", "url"=>"https://codersherlock.github.com/", "github_username"=>"codersherlock", "disqus_shortname"=>"codersherlockblog", "gems"=>["jekyll-paginate", "jekyll-gist", "jemoji"], "paginate"=>5, "serving"=>false}:ET
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
I")<div class="timeline">
|
||||
|
||||
<div class="timeline__group">
|
||||
<span class="timeline__year">Now</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">21</span>
|
||||
<span clas="timeline__month">Aug</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<p>Look up at the Starry Sky</p>
|
||||
<audio controls=""><source src="/static/2018-09/beihang.mp3" type="audio/mpeg" /></audio>
|
||||
<img src="http://www.fsaona.com/images/imagesbigimg.jpg" height="auto" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2011</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">10</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Transfered to another high school</p> -->
|
||||
<img src="http://school.zhongkao.com/style/school/pictures/school/734/73421/logo.jpg" height="250" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2010</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened high school</p> -->
|
||||
<img src="http://www.fuzhong.sd.cn/uploadfile/2015/0704/20150704044140866.jpg" height="250" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2008</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened middle school</p> -->
|
||||
<img src="https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike72%2C5%2C5%2C72%2C24/sign=5bc3fe5949540923be646b2cf331ba6c/3812b31bb051f819506a0330dab44aed2e73e779.jpg" height="250" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2005</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened primary school</p> -->
|
||||
<img src="http://www.sdsdfx.com:85/fxjylm/u/cms/www/201510/27194804xvgc.jpg" height="250" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">1999</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">26</span>
|
||||
<span class="timeline__month">Aug</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<p> Borned in <a href="https://en.wikipedia.org/wiki/Jinan">Jinan</a>, <a href="https://en.wikipedia.org/wiki/Shandong">Shandong Province</a>, China </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">1993</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
:ET
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
I"Š<p>This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.</p>
|
||||
:ET
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
I".<p>Where am I and where should I go?</p>
|
||||
:ET
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
I"Õ<h1 id="pengzhan-hao">Pengzhan Hao</h1>
|
||||
|
||||
<p><strong>Position:</strong> Â Â Â Â Â Â Â Â Research Assistant in MOSLab<br />
|
||||
<strong>Education:</strong> Â Â Â Â Â Doctoral Student of SUNY at Binghamton<br />
|
||||
<strong>Email:</strong> Â Â Â Â Â Â Â Â Â Â Â Â phao3 at binghamton dot edu<br />
|
||||
<strong>Address:</strong><br />
|
||||
                        MOSLab, H-6 Engineering Building<br />
|
||||
                        Binghamton University<br />
|
||||
                        4400 Vestal Parkway East<br />
|
||||
                        Binghamton, NY 13902</p>
|
||||
|
||||
<h2 id="education">Education</h2>
|
||||
<ul>
|
||||
<li>2017.08 - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Ph.D. in Computer Science, Binghamton University, NY, USA</li>
|
||||
<li>2015.08 - 2017.05 Â Â M.E in Computer Science, Binghamton University, NY, USA</li>
|
||||
<li>2011.08 - 2015.06 Â Â B.E in Software Engineering, Beihang University, Beijing, China</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="experience">Experience</h2>
|
||||
<ul>
|
||||
<li>2013.10 - 2014.09 Â Â <strong><em>Research Intern</em></strong> @ Advanced computer application technology engineering Research Center, Ministry of Education, China
|
||||
<ul>
|
||||
<li>Analyzed real-time routing problem and reliable algorithm design</li>
|
||||
<li>Led and developed a routing system mostly backend server program</li>
|
||||
<li>Participated in vehicle internet research</li>
|
||||
<li>Supervised by <a href="http://scse.buaa.edu.cn/buaa-css-web/toCardDetailAction.action?firstSelId=CARD_TMPL_OF_FIRST_NAVI_CN&secondSelId=CARD_TMPL_OF_ALL_TEACHER_CN&thirdSelId=&cardId=105c1bfe787-4d33-48eb-a05f-e2a6f3934216&language=0&curSelectNavId=CARD_TMPL_OF_ALL_TEACHER_CN">Juhua Pu</a>, <a href="http://scse.buaa.edu.cn/buaa-css-web/toCardDetailAction.action?firstSelId=CARD_TMPL_OF_FIRST_NAVI_CN&secondSelId=CARD_TMPL_OF_ALL_TEACHER_CN&thirdSelId=&cardId=3063cc45-7b8b-441a-86b2-3a4f59c26bd40&language=0&curSelectNavId=CARD_TMPL_OF_ALL_TEACHER_CN">Zhang Xiong</a>, Related project: <a href="https://www.microsoft.com/en-us/research/project/urban-computing/">Urban Computing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>2013.10 - 2014.01 Â Â <strong><em>Research Intern</em></strong> @ Institute of Software, Chinese Academy of Sciences, China
|
||||
<ul>
|
||||
<li>Analyzed mobile OS kernel and Localized portion with C language</li>
|
||||
<li>Supervised by <a href="http://soft.buaa.edu.cn/info/1060/1307.htm">Cangzhou Yuan</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="research">Research</h2>
|
||||
<ul>
|
||||
<li>Graduate
|
||||
<ul>
|
||||
<li>Edge Computing
|
||||
<ul>
|
||||
<li>Network Performance</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Vitrualization</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Undergraduate
|
||||
<ul>
|
||||
<li>Urban Comuputing
|
||||
<ul>
|
||||
<li>Routing algorithm and system</li>
|
||||
<li>Real-time data processing</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Mobile Operating System
|
||||
<ul>
|
||||
<li>Kernel Analysis</li>
|
||||
<li>Locolization</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="publications">Publications</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p><strong><a href="">A Case for Web Service Bandwidth Reduction on Mobile Devices with Edge-hosted Personal Services </a></strong> <br />
|
||||
Yongshu Bai, <strong>Pengzhan Hao</strong>, and Yifan Zhang <br />
|
||||
The 37th IEEE International Conference on Computer Communications (<strong>IEEE INFOCOM</strong>)<br />
|
||||
Honolulu, HI, USA, 2018.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong><a href="/static/2018-02/a7-hao.pdf">EdgeCourier: An Edge-hosted Personal Service for Low-bandwidth Document Synchronization in Mobile Cloud Storage Services</a></strong> <strong>[<a href="">slide</a>]</strong><br />
|
||||
<strong>Pengzhan Hao</strong>, Yongshu Bai, Xin Zhang, and Yifan Zhang<br />
|
||||
The 2nd ACM/IEEE Symposium on Edge Computing (<strong>ACM/IEEE SEC</strong>)<br />
|
||||
San Jose, CA, USA, 2017.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong><a href="/static/2017-07/p169-zhang.pdf">Poster: Securing Device Inputs for Smartphones Using Hypervisor Based Approach</a></strong><br />
|
||||
Xin Zhang, Yongshu Bai, <strong>Pengzhan Hao</strong>, and Yifan Zhang<br />
|
||||
The 15th ACM International Conference on Mobile Systems, Applications, and Services (ACM MobiSys)<br />
|
||||
Niagara Falls, NY, USA, 2017.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong><a href="/static/2017-07/p163-hao.pdf">Poster: EPS - Edge-hosted Personal Services for Mobile Users</a> [<a href="/static/2017-07/eps_poster.pdf">poster</a>]</strong><br />
|
||||
<strong>Pengzhan Hao</strong>, Yongshu Bai, Xin Zhang, and Yifan Zhang<br />
|
||||
The 15th ACM International Conference on Mobile Systems, Applications, and Services (ACM MobiSys)<br />
|
||||
Niagara Falls, NY, USA, 2017.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="fun">Fun</h2>
|
||||
|
||||
<ul>
|
||||
<li>My <a href="/timeline/index.html">Timeline</a></li>
|
||||
</ul>
|
||||
:ET
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
I"± <p>I hate xv6, a stupid, useless education-oriented system. In this article, I will generally talk about how to implement system call to this operating system.</p>
|
||||
|
||||
<h2 id="xv6-systemcall">Xv6 Systemcall</h2>
|
||||
<p>To invoke a system call, we have to first define a user mode function to be the interface of the kernel instruction in file <em>user.h</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">function</span> <span class="p">(</span><span class="kt">void</span><span class="p">);</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This interface-like function will then pass the function name, in this case function, to <em>usys.S</em>. When using user mode function in programs, <em>usys.S</em> will generate a reference to SYS_function and push system call number of this function into %eax. After that, system can know from <em>syscall.c</em> and determining whether this system call is available. We must define same name system function and add it into <em>syscall.h</em> and <em>syscall.c</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#define SYS_function ## // ## is the system call number
|
||||
</span><span class="p">[</span><span class="n">SYS_function</span><span class="p">]</span> <span class="n">sys_function</span> <span class="c1">// real system function name</span>
|
||||
<span class="k">extern</span> <span class="kt">int</span> <span class="nf">sys_function</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> <span class="c1">// real system function declaration</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After adding these sentences to syscall files, we can implement real function in specific place where you want to make the function works well.</p>
|
||||
|
||||
<p>Sometimes, we need to pass variables among system calls. In this case, variables’ values are not necessary and even can’t be pass directly into system_function. When invoke a system call function, all variables of this system call will be pushed into current process’ stack. In file <em>syscall.c</em>, multiple functions are provided to get these variables from the process. I won’t waste time on explaining how to use these functions especially when elegant and detailed comments were written in source codes. However, I will explain concepts and how process organized and works in xv6 in future articles.</p>
|
||||
:ET
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
I"Ó<p>In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one.<br />
|
||||
My current solution is using AP to forward all SSL traffic to a proxy, <a href="https://www.charlesproxy.com/">charles proxy</a> is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.</p>
|
||||
:ET
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
I"æ<p>This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.</p>
|
||||
|
||||
<h1 id="2016-10">2016-10</h1>
|
||||
|
||||
<h2 id="time-experiment-of-rsync">Time Experiment of rsync</h2>
|
||||
|
||||
<p>Patch is based on rsync with version 3.1.2. [<a href="https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz">Rsync</a>|<a href="/static/2016-10/rsync/rsync-3.1.2-time.patch">Patch</a>]</p>
|
||||
|
||||
<h3 id="how-to-collect-data">How to collect data</h3>
|
||||
|
||||
<p>Basically, everything of transmission time and computation time will be output with overall time will be printed on the console.
|
||||
But we also need some bash script to collect data through different size of random size and with different modification through them.</p>
|
||||
|
||||
<ul>
|
||||
<li>Start from 8K to 64M, modify at beginning, [<a href="/static/2016-10/rsync/small2Big_change_at_begin.sh">Bash script</a>]</li>
|
||||
<li>Start from 8K to 64M, modify at last, [<a href="/static/2016-10/rsync/small2Big_change_at_last.sh">Bash script</a>]</li>
|
||||
<li>Start from 8K to 64M, modify at random place with a (slow) python script, [<a href="/static/2016-10/rsync/small2Big_change_at_anyplace.sh">Bash script</a>|<a href="/static/2016-10/rsync/addbyte.py">Python program</a>]</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="time-experiment-of-seafile">Time Experiment of seafile</h2>
|
||||
|
||||
<p>Patch is based on seafile 5.1.4. You can find the release from <a href="https://github.com/haiwen/seafile/releases">seafile official repo</a>. You may follow official compile instructions from <a href="https://manual.seafile.com/build_seafile/linux.html">here</a>. [<a href="">Patch <strong>no longer avaiable, new version at following sections</strong></a>]</p>
|
||||
|
||||
<h3 id="how-to-collect-data-1">How to collect data</h3>
|
||||
|
||||
<p>We also need everything be done using scripting. But this time I only design added some distance between two increasing files’ sizes.</p>
|
||||
|
||||
<ul>
|
||||
<li>Start from 8K to 16M, 4 times increasing, modify at beginning/ at 1024 different places with python script. [<a href="/static/2016-11/seafile/trans.sh">Bash Script</a>|<a href="/static/2016-11/seafile/addbyte.py">Python program</a>]</li>
|
||||
<li>After using this auto testing script, everything of output will be marked in log files of seafile, which located in <strong>~/.ccnet/log/seafile.log</strong></li>
|
||||
<li>We need to use this simple awk code and vim operation to extract data.</li>
|
||||
</ul>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># CDC: content defined chucks</span>
|
||||
<span class="c"># HUT: Http upload traffic</span>
|
||||
<span class="c"># ALL: overall time of one commit & upload</span>
|
||||
<span class="nb">awk</span> <span class="s1">'/CDC|HUT|ALL/ {print $4,$5}'</span> ~/.ccnet/log/seafile.log <span class="o">></span> results.stat
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="install-seafile-on-odroid-xu">Install Seafile on odroid xu</h3>
|
||||
|
||||
<p>Due to failure of my cross-compile to seafile on android. I used develop board as a replacement experiment platform for ARM-seafile testing. I used a <a href="http://www.hardkernel.com/main/products/prdt_info.php?g_code=G137510300620">odroid xu</a> as hardware standard. Because all I need is an ARM platform, only an ARM-Ubuntu is enough for me. But develop prototype on a board is much fun than coding, I won’t address much this time. But I’ll start a blog telling some really cool stuff I made for a strange aim.</p>
|
||||
|
||||
<p>To install a ubuntu with GUI is my all preparation work. I found to way to do this.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="http://www.armhf.com/boards/odroid-xu/">armhf</a> is a website for arm-based ubuntu. It has a detailed instruction to follow at <a href="http://www.armhf.com/boards/odroid-xu/odroid-sd-install/">here</a>. They also provide ubuntu 12.04/ 14.04 and debian 7.5 to choose. But unfortunately odroid xu’s hdmi output doesn’t supported by ubuntu native firmware. So install ubuntu-desktop might can’t be boot up for video output.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Burn images is much easy to install a pre-complied ubuntu system. I found this on odroid xu’s forum, which contains xubuntu image [<a href="http://odroid.in/ubuntu_14.04lts/ubuntu-14.04lts-xubuntu-odroid-xu-20140714.img.xz">download</a>] for odroid xu. With this image, you just need to use dd command to write whole system mirror into sdcard.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># If .img end with xz, use this command to uncompress first</span>
|
||||
unxz ubuntu-14.04lts-xubuntu-odroid-xu-20140714.img.xz
|
||||
<span class="c"># Burn image into SD-card</span>
|
||||
<span class="nb">sudo dd </span><span class="k">if</span><span class="o">=</span>ubuntu-14.04lts-xubuntu-odroid-xu-20140714.img <span class="nv">of</span><span class="o">=</span>/dev/sdb <span class="nv">bs</span><span class="o">=</span>1M <span class="nv">conv</span><span class="o">=</span>fsync
|
||||
<span class="nb">sync</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<h1 id="2016-11">2016-11</h1>
|
||||
|
||||
<h2 id="android-kernel">Android Kernel</h2>
|
||||
|
||||
<h3 id="how-to-build-an-android-kernel">How to build an Android Kernel?</h3>
|
||||
|
||||
<p>Generally, I won’t tell anything in this parts, just mark some related links, and point out some mistakes or error solutions.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="http://source.android.com/source/building-kernels.html#figuring-out-which-kernel-to-build">Google Official Guide</a>
|
||||
– If you don’t have AOSP sources, you have to download prebuilt toolchains which recommended in this guide might not be correct. Use following links to choose your fitting tools.
|
||||
— <a href="https://android.googlesource.com/?format=HTML">ASOP git root</a>, under sub class “/platform/prebuilts/gcc�</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://softwarebakery.com/building-the-android-kernel-on-linux">Packing and Flashing a Boot.img</a> <strong>[highly recommend]</strong></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1 id="2016-12">2016-12</h1>
|
||||
|
||||
<h2 id="android-kernel-1">Android Kernel</h2>
|
||||
|
||||
<h3 id="how-to-compile-with-ftrace">How to compile with ftrace?</h3>
|
||||
|
||||
<p>If we want to debug under android, ftrace is a great tool for working. But, ftrace is not available in android if we used default configure file. Android kernel configuration is in <strong>arch/arm64/kernel/configs</strong>. We need to add few lines under that.</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">CONFIG_STRICT_MEMORY_RWX</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_FUNCTION_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_FUNCTION_GRAPH_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_DYNAMIC_FTRACE</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_PERSISTENT_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_IRQSOFF_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_PREEMPT_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_SCHED_TRACER</span><span class="o">=</span>y
|
||||
<span class="nv">CONFIG_STACK_TRACER</span><span class="o">=</span>y
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="how-to-extract-android-images-dump-an-image">How to extract android images: Dump an image</h3>
|
||||
|
||||
<p>If we want to hold a rooted status after flashing boot, we need to extract an image from android devices. We can first use following command to find which blocks belongs to. According to some references, <a href="http://forum.xda-developers.com/showthread.php?t=2450045">this article</a> provide three ways to dump an image, I picked one for easy using.</p>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>adb shell
|
||||
<span class="nb">ls</span> <span class="nt">-al</span> /dev/block/platform/<span class="nv">$SOME</span><span class="se">\_</span>DEVICE../../by-name <span class="c"># {Partitions} -> {Device Block}</span>
|
||||
|
||||
<span class="c"># dump file</span>
|
||||
su
|
||||
<span class="nb">dd </span><span class="k">if</span><span class="o">=</span>/dev/block/mmcblk0p37 <span class="nv">of</span><span class="o">=</span>/sdcard/boot.img
|
||||
</code></pre></div></div>
|
||||
:ET
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
I"ò<p>In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one.<br />
|
||||
My current solution is using AP to forward all SSL traffic to a proxy, <a href="https://www.charlesproxy.com/">charles proxy</a> is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.</p>
|
||||
|
||||
<h3 id="preparations">Preparations</h3>
|
||||
<ul>
|
||||
<li>Monitor device situation: Linux Machine with wireless adapter</li>
|
||||
<li>Download the newest version(4.0.1) of charles</li>
|
||||
<li>Target android devices with root privilege</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="install-charles-and-configuration">Install Charles and Configuration</h3>
|
||||
|
||||
<ul>
|
||||
<li>You have to install charles first. After downloading the charles proxy, you have to unzip it and configure some basic settings.</li>
|
||||
</ul>
|
||||
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># open charles first</span>
|
||||
./bin/charles
|
||||
</code></pre></div></div>
|
||||
<ul>
|
||||
<li>Save charles’ private key and public key</li>
|
||||
</ul>
|
||||
|
||||
<p>In Help -> SSL Proxying -> Export Charles Root Certificate and Private Key, enter a password and save the public and private key in *.p12 format.<br />
|
||||
You also need to save charles Root Certificate, it also contains in the same menu. For convience, save it as *.pem format.</p>
|
||||
|
||||
<ul>
|
||||
<li>Set Proxy and SSL Proxy</li>
|
||||
</ul>
|
||||
:ET
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
I"
|
||||
:ET
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
I"¤<p>I hate xv6, a stupid, useless education-oriented system. In this article, I will generally talk about how to implement system call to this operating system.</p>
|
||||
:ET
|
||||
Reference in New Issue
Block a user