<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[54PL]]></title><description><![CDATA[隨便寫寫]]></description><link>https://blog.power.li/</link><image><url>https://blog.power.li/favicon.png</url><title>54PL</title><link>https://blog.power.li/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Sat, 02 May 2026 04:39:57 GMT</lastBuildDate><atom:link href="https://blog.power.li/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[把手手變成 NFC 感應卡]]></title><description><![CDATA[紀錄到日本去割手手的經驗，把晶片塞進手裡面，變成寵物，可以開門還可以把手當 Passkey 用，搞不好還可以拿手來付錢?]]></description><link>https://blog.power.li/put-chips-in-my-hands/</link><guid isPermaLink="false">661a077d9c2f77000186313a</guid><category><![CDATA[implants]]></category><category><![CDATA[javacard]]></category><category><![CDATA[mifare]]></category><category><![CDATA[vivokey]]></category><category><![CDATA[surgery]]></category><category><![CDATA[dangerousthings]]></category><category><![CDATA[fidesmo]]></category><dc:creator><![CDATA[Power Li]]></dc:creator><pubDate>Sat, 13 Apr 2024 06:46:29 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1560114928-40f1f1eb26a0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGtpdHRlbnxlbnwwfHx8fDE3MTI5ODE4ODB8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<hr><h3 id="dangerous-things">Dangerous Things</h3>
<img src="https://images.unsplash.com/photo-1560114928-40f1f1eb26a0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGtpdHRlbnxlbnwwfHx8fDE3MTI5ODE4ODB8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;"><p>&#x524D;&#x5E7E;&#x5E74;&#x5728;&#x7DB2;&#x8DEF;&#x4E0A;&#x770B;&#x5230;&#x4E86;&#x4E00;&#x500B;&#x5F88;&#x9177;&#x7684;&#x7DB2;&#x7AD9; <a href="https://dangerousthings.com/?ref=blog.power.li">DangeriousThings</a> &#xFF0C;&#x5275;&#x8FA6;&#x4EBA; Amal Graafstra &#x7814;&#x7A76;&#x4E86;&#x5F88;&#x591A;&#x95DC;&#x65BC; RFID &#x7684;&#x6771;&#x897F;&#xFF0C;&#x4ED6;&#x958B;&#x767C;&#x51FA;&#x4E00;&#x7A2E;&#x53EF;&#x4EE5;&#x85CF;&#x5230;&#x76AE;&#x4E0B;&#x7684; RFID &#x690D;&#x5165;&#x7269;&#xFF0C;&#x5C31;&#x8DDF;&#x52D5;&#x7269;&#x4E00;&#x6A23;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x76AE;&#x4E0B;&#x5B89;&#x88DD;&#x4E00;&#x500B;&#x5C0F;&#x6676;&#x7247;&#xFF0C;&#x7528; RFID / NFC &#x7684;&#x8B80;&#x5361;&#x5668;&#x8B80;&#x53D6;&#xFF0C;&#x5C31;&#x4E0D;&#x7528;&#x5E36;&#x5361;&#x51FA;&#x9580;&#x4E86;?</p>
<p>&#x7576;&#x6642;&#x958B;&#x767C;&#x51FA;&#x4F86;&#x7684;&#x690D;&#x5165;&#x7269;&#x6709;&#x4E0D;&#x5C11;</p>
<ul>
<li>Mifare Classic / DESFire / Ultralight / NTAG &#x7B49; 13.56 MHz &#x6676;&#x7247;</li>
<li>Tesla &#x8ECA;&#x9470;&#x5319;</li>
<li>EM4100 &#x7B49; 125 KHz &#x7684;&#x6676;&#x7247;</li>
<li>LED &#x71C8;</li>
<li>&#x78C1;&#x9435;</li>
</ul>
<p>&#x5C31;&#x9084;&#x662F;&#x89BA;&#x5F97;&#x5C11;&#x4E86;&#x4E9B;&#x4EC0;&#x9EBC;&#xFF0C;&#x4F46;&#x6211;&#x89BA;&#x5F97; <a href="https://forum.dangerousthings.com/t/show-off-your-blink-xsiid-nfc-led-gallery-glow/8519?ref=blog.power.li">LED</a> &#x8DDF;&#x78C1;&#x9435;&#x883B;&#x5E25;&#x7684;</p>
<h3 id="vivokey">Vivokey</h3>
<p>&#x5C31;&#x5728;&#x53BB;&#x5E74;&#x7684;&#x6642;&#x5019;&#xFF0C;Vivokey &#x6B63;&#x5F0F;&#x767C;&#x5E03;&#x4E86;&#x4E00;&#x6B3E;&#x57FA;&#x65BC; Fidesmo &#x5E73;&#x53F0;&#x7684;&#x7684; JavaCard &#x690D;&#x5165;&#x7269;&#xFF0C;&#x4E5F;&#x540C;&#x6642;&#x63A8;&#x51FA;&#x7D14; JavaCard &#x7684;&#x7248;&#x672C; flexSecure&#x3002;</p>
<h4 id="vivokey-apex">Vivokey Apex</h4>
<p>Apex &#x662F;&#x4E00;&#x500B;&#x57FA;&#x65BC; Fidesmo &#x5E73;&#x53F0;&#x7684;&#x690D;&#x5165;&#x7269;&#xFF0C;&#x5C31;&#x50CF;&#x662F; JavaCard &#x7684; AppStore&#xFF0C;&#x53EF;&#x4EE5;&#x7528; Fidesmo &#x7684; App &#x6216;&#x662F; fdsm.jar &#x5C0D;&#x5361;&#x7247;&#x5B89;&#x88DD; Applets</p>
<p>&#x76EE;&#x524D; Apex &#x5728; Fidesmo &#x4E0A;&#x63D0;&#x4F9B;</p>
<ul>
<li>Tesla Key Card</li>
<li>NDEF Sharing</li>
<li>SmartPGP</li>
<li>TOTP Authenticator</li>
<li>FIDO WebAuthn</li>
<li>HMAC SHA-1 Generator</li>
<li>Status.im &#x9322;&#x5305;</li>
<li>Satochip &#x9322;&#x5305;</li>
</ul>
<p>WebAuthn &#x8DDF; Tesla &#x8ECA;&#x9470;&#x5319;&#x662F;&#x6211;&#x6700;&#x60F3;&#x73A9;&#x7684;&#x5169;&#x500B;&#x529F;&#x80FD;&#xFF0C;&#x8AB0;&#x51FA;&#x9580;&#x9084;&#x6703;&#x5E36;&#x9470;&#x5319;&#x8DDF; Authenticator&#xFF0C;&#x5C0D;&#x5427;</p>
<p>&#x7576;&#x6211;&#x770B;&#x5230; Apex &#x7D42;&#x65BC;&#x6B63;&#x5F0F;&#x63A8;&#x51FA;&#x4E4B;&#x5F8C;&#xFF0C;&#x6211;&#x5C31;&#x958B;&#x59CB;&#x627E;&#x65B9;&#x6CD5;&#x628A; Apex &#x585E;&#x9032;&#x624B;&#x624B;&#x88E1;</p>
<h3 id="vivokeyjp">Vivokey.jp</h3>
<p>&#x5728;&#x53F0;&#x7063;&#x8981;&#x627E;&#x5230;&#x91AB;&#x751F;&#x5E6B;&#x5FD9;&#x585E;&#x624B;&#x624B;&#x7E3D;&#x89BA;&#x5F97;&#x5C31;&#x4E0D;&#x5BB9;&#x6613;&#xFF0C;&#x6240;&#x4EE5;&#x5C31;&#x958B;&#x59CB;&#x5F80;&#x570B;&#x5916;&#x627E;&#xFF0C;&#x4E0D;&#x77E5;&#x9053;&#x70BA;&#x5565;&#x570B;&#x5916;&#x7684;&#x91AB;&#x751F;&#x90FD;&#x883B;&#x6562;&#x641E;&#x9019;&#x4E9B;&#x6771;&#x897F;&#x7684;<br>
&#x5C31;&#x9019;&#x9EBC;&#x525B;&#x597D;&#xFF0C;Vivokey&#x5728;&#x65E5;&#x672C;&#x958B;&#x4E86;<a href="http://vivokey.jp/?ref=blog.power.li">&#x5206;&#x516C;&#x53F8;</a>&#xFF0C;&#x4E0D;&#x7136;&#x53BB;&#x8CB7;&#x7F8E;&#x570B;&#x6216;&#x6B50;&#x6D32;&#x7684;&#x6A5F;&#x7968;&#x76F4;&#x63A5;&#x8B93;&#x6211;&#x7834;&#x7522;</p>
<p>&#x5728; 2022 &#x5E74;&#x5E95;&#x7684;&#x6642;&#x5019;&#xFF0C;&#x627E;&#x6B7B;&#x7684;&#x6211;&#x5C31;&#x554F;&#x4E86;&#x4ED6;&#x5011;&#x7684;&#x7C89;&#x5C08;&#xFF0C;&#x7D50;&#x679C;&#x662F;&#x627E;&#x4E0D;&#x5230;&#x91AB;&#x751F;&#x53EF;&#x4EE5;&#x505A;&#x624B;&#x8853;<br>
<img src="https://blog.power.li/content/images/2024/04/-------2024-04-13-124547.png" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<p>&#x7136;&#x5F8C;&#x5728; 2023 &#x5E74;&#x5E95;&#xFF0C;&#x770B;&#x5230;&#x7C89;&#x5C08;&#x8CBC;&#x4E86;&#x4E00;&#x7BC7;&#x8CBC;&#x6587;&#xFF0C;&#x8AAA;&#x76EE;&#x524D;&#x53EF;&#x4EE5;&#x690D;&#x5165;&#x624B;&#x8853;&#x4E86;&#xFF0C;&#x6211;&#x53C8;&#x99AC;&#x4E0A;&#x554F;&#x7C89;&#x5C08;&#xFF0C;&#x9019;&#x6B21;&#x7D42;&#x65BC;&#x6709;&#x4E86;&#x91AB;&#x751F;&#xFF0C;&#x800C;&#x4E14;&#x9084;&#x5728;&#x6771;&#x4EAC;&#x5E02;&#x5340;&#x5167;!!<br>
<img src="https://blog.power.li/content/images/2024/04/-------2024-04-13-125214.png" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<p>&#x78BA;&#x8A8D;&#x597D;&#x8A02;&#x8CFC;&#x6642;&#x9593;&#x9700;&#x8981;&#x7684;&#x6642;&#x9593;&#x8DDF;&#x5730;&#x9EDE;&#xFF0C;&#x5C31;&#x958B;&#x59CB;&#x627E;&#x53BB;&#x65E5;&#x672C;&#x73A9;&#x7684;&#x6642;&#x9593;</p>
<h3 id="%E4%BB%98%E9%8C%A2">&#x4ED8;&#x9322;</h3>
<p>1&#x6708;&#x5E95;&#x7684;&#x6642;&#x5019;&#xFF0C;&#x6C7A;&#x5B9A;&#x4E86;3&#x6708;&#x5E95;&#x8981;&#x53BB;&#x6771;&#x4EAC;&#x7684;&#x884C;&#x7A0B;&#xFF0C;&#x6A5F;&#x7968;&#x771F;&#x4ED6;&#x5ABD;&#x8CB4;&#x5230;&#x7206;&#xFF0C;&#x5C31;&#x958B;&#x59CB;&#x8DDF; Vivokey &#x8A02;&#x8CFC;&#x6676;&#x7247;</p>
<p>&#x7D50;&#x679C;&#x641E;&#x4ED8;&#x6B3E;&#x9019;&#x4EF6;&#x4E8B;&#x60C5;&#xFF0C;&#x641E;&#x4E86;&#x6574;&#x6574;&#x4E09;&#x5929;&#xFF0C;&#x9084;&#x8B93;&#x4ED6;&#x5011;&#x70BA;&#x4E86;&#x6211;&#x53BB;&#x958B;&#x901A; Stripe &#x5C31;&#x70BA;&#x4E86;&#x8B93;&#x6211;&#x4ED8;&#x9322;&#xFF0C;&#x7562;&#x7ADF;&#x5916;&#x570B;&#x4EBA;&#x6C92;&#x8FA6;&#x6CD5;&#x7528;&#x65E5;&#x672C;&#x570B;&#x5167;&#x8F49;&#x5E33;&#xFF0C;&#x4ED6;&#x5011;&#x914D;&#x5408;&#x7684;&#x9280;&#x884C;&#x9084;&#x4E0D;&#x80FD; SWIFT &#x532F;&#x6B3E;&#xFF0C;&#x8D85;&#x611F;&#x8B1D;&#x4ED6;&#x5011;&#x7684;</p>
<h3 id="%E6%99%B6%E7%89%87%E5%80%91">&#x6676;&#x7247;&#x5011;</h3>
<p>&#x6700;&#x5F8C;&#x60F3;&#x4E86;&#x5F88;&#x4E45;&#xFF0C;&#x6C7A;&#x5B9A;&#x8A02;&#x4E86; 2 &#x500B;&#xFF0C;&#x5206;&#x5225;&#x88DD;&#x5728;&#x5DE6;&#x53F3;&#x624B;</p>
<ul>
<li>&#x5DE6;&#x624B; <a href="https://dangerousthings.com/product/flexm1/?ref=blog.power.li">Mifare Classic Magic Gen2 </a></li>
<li>&#x53F3;&#x624B; <a href="https://dangerousthings.com/product/apex-flex/?ref=blog.power.li">Vivokey Apex</a></li>
</ul>
<h4 id="mifare-classic-m1-magic">Mifare Classic (M1) Magic</h4>
<p>&#x76EE;&#x524D;&#x5E02;&#x9762;&#x4E0A;&#x6709;&#x5169;&#x7A2E; Mifare Classic &#x8907;&#x88FD;&#x5361;</p>
<ul>
<li>Gen 1
<ul>
<li>&#x88AB;&#x7A31;&#x70BA; Chinese Magic Card&#xFF0C;&#x9470;&#x5319;&#x5E97;&#x8CE3;&#x7684;&#x5C31;&#x662F;&#x9019;&#x7A2E;&#xFF0C;&#x6DD8;&#x5BF6;&#x4E00;&#x5F35; NT$10 &#x4E0D;&#x5230;</li>
<li>&#x64C1;&#x6709;&#x5F8C;&#x9580;&#xFF0C;&#x9700;&#x8981;&#x7528; PN5xx &#x7CFB;&#x5217;&#x7684;&#x8B80;&#x5361;&#x6A5F;&#x6216;&#x662F; Proxmark 3 &#x89E3;&#x958B;
<ul>
<li>ACR122U / PN532 + Arduino &#x90FD;&#x53EF;&#x4EE5;</li>
<li>&#x9700;&#x8981;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x7684;&#x6307;&#x4EE4;&#xFF0C;&#x5361;&#x7247;&#x5C31;&#x6703;&#x76F4;&#x63A5;&#x89E3;&#x9396;&#xFF0C;&#x8B93;&#x4F60;&#x96A8;&#x4FBF;&#x5BEB;&#x5361;&#xFF0C;&#x9023;&#x5BC6;&#x78BC;&#x90FD;&#x4E0D;&#x7528;</li>
</ul>
</li>
<li>UID &#x6240;&#x5728;&#x7684; Sector 0 &#x662F;&#x53EF;&#x4EE5;&#x5BEB;&#x5165;&#x7684;</li>
<li>&#x4E0D;&#x7528;&#x64D4;&#x5FC3;&#x5361;&#x7247;&#x88AB;&#x5BEB;&#x58DE;&#xFF0C;&#x56E0;&#x70BA;&#x5F8C;&#x9580;&#x958B;&#x4E86;&#x5C31;&#x96A8;&#x4FBF;&#x5BEB;</li>
<li>&#x73FE;&#x5728;&#x4E0D;&#x5C11;&#x9580;&#x7981;&#x6A5F;&#x90FD;&#x6703;&#x5148;&#x5617;&#x8A66;&#x958B;&#x5F8C;&#x9580;&#xFF0C;&#x5982;&#x679C;&#x5F8C;&#x9580;&#x555F;&#x52D5;&#x6210;&#x529F;&#xFF0C;&#x5C31;&#x76F4;&#x63A5;&#x62D2;&#x7D55;&#x5361;&#x7247;</li>
</ul>
</li>
<li>Gen 2
<ul>
<li>&#x8DDF;&#x4E00;&#x822C;&#x7684; Mifare Classic &#x5361;&#x7247;&#x4E00;&#x6A21;&#x4E00;&#x6A23;&#xFF0C;&#x53EA;&#x5DEE;&#x5728; Sector 0 &#x6C92;&#x6709;&#x9396;&#x5B9A;&#x53EA;&#x8B80;</li>
<li>Android &#x624B;&#x6A5F;&#x5C31;&#x53EF;&#x4EE5;&#x5BEB;&#x5165;</li>
<li>&#x6C92;&#x6709;&#x5F8C;&#x9580;&#x8DDF;&#x6F0F;&#x6D1E;&#xFF0C;&#x6B0A;&#x9650;&#x63A7;&#x5236;&#x5BEB;&#x721B;&#x4E86;&#x6216;&#x662F;&#x5FD8;&#x8A18;&#x5BC6;&#x78BC;&#xFF0C;&#x5361;&#x5C31;&#x5EE2;&#x4E86;</li>
</ul>
</li>
</ul>
<p>&#x525B;&#x525B;&#x597D; Amal &#x958B;&#x767C;&#x4E86;&#x65B0;&#x7684; flexM1 Gen 2&#xFF0C;&#x7528;&#x4E86;&#x65B0;&#x7684;&#x8EDF;&#x6027; PCB &#x677F;&#xFF0C;&#x5C31;&#x6C7A;&#x5B9A;&#x662F;&#x4ED6;&#x4E86;</p>
<h3 id="%E5%A1%9E%E9%80%B2%E5%8E%BB">&#x585E;&#x9032;&#x53BB;</h3>
<h4 id="%E8%A8%BA%E6%89%80">&#x8A3A;&#x6240;</h4>
<p>&#x7D04;&#x597D;&#x4E86;&#x6642;&#x9593;&#xFF0C;&#x9078;&#x5728;&#x65E5;&#x672C;&#x884C;&#x7684;&#x6700;&#x5F8C;&#x4E00;&#x5929;&#xFF0C;&#x524D;&#x4E00;&#x5929;&#x9084;&#x53BB;&#x642D;&#x4E86;&#x76F4;&#x5347;&#x6A5F;&#x53BB;&#x770B;&#x5BCC;&#x58EB;&#x5C71;&#xFF0C;&#x771F;&#x7684;&#x7F8E;&#x5230;&#x70B8;&#x6389;<br>
&#x8A3A;&#x6240;&#x4F4D;&#x5728;&#x6771;&#x4EAC;&#x7684;&#x5927;&#x7530;&#x5340;&#xFF0C;&#x4F46;&#x6700;&#x5F8C;&#x767C;&#x73FE;&#x53EA;&#x662F;&#x4E00;&#x9593;&#x5C0F;&#x5957;&#x623F;&#xFF0C;&#x62FF;&#x4F86;&#x8B77;&#x819A;&#x6309;&#x6469;&#x7684;&#x90A3;&#x7A2E;</p>
<p>&#x91AB;&#x751F;&#x662F;&#x5C08;&#x9580;&#x505A;&#x5FC3;&#x81DF;&#x5916;&#x79D1;&#x624B;&#x8853;&#x7684;&#xFF0C;&#x60F3;&#x5FC5;&#x4ED6;&#x5C0D;&#x585E;&#x624B;&#x624B;&#x9019;&#x7A2E;&#x5C0F;&#x624B;&#x8853;&#x55E4;&#x4E4B;&#x4EE5;&#x9F3B;&#xFF0C;&#x65C1;&#x908A;&#x8DDF;&#x4E86;&#x4E00;&#x500B;&#x8B77;&#x7406;&#x5E2B;&#xFF0C;&#x4E0D;&#x5F97;&#x4E0D;&#x8AAA;&#xFF0C;&#x90A3;&#x500B;&#x8B77;&#x7406;&#x5E2B;&#x662F;&#x6211;&#x9019;&#x6B21;&#x65E5;&#x672C;&#x884C;&#x4E2D;&#x898B;&#x904E;&#x6700;&#x6F02;&#x4EAE;&#x7684;&#x5973;&#x751F;&#xFF0C;&#x771F;&#x5FC3;&#x4E0D;&#x9A19;</p>
<p>&#x5F9E;&#x6377;&#x904B;&#x7AD9;&#x51FA;&#x4F86;&#x5F8C;&#xFF0C;&#x5C31;&#x5728;&#x51FA;&#x53E3;&#x4E0A;&#x65B9;&#x7684;&#x5927;&#x6A13;&#x88E1;</p>
<h4 id="%E5%A1%9E%E6%89%8B%E6%89%8B">&#x585E;&#x624B;&#x624B;</h4>
<p>&#x9032;&#x53BB;&#x4E4B;&#x5F8C;&#xFF0C;&#x91AB;&#x751F;&#x5148;&#x5E36;&#x6211;&#x53BB;&#x6D17;&#x624B;&#xFF0C;&#x8B93;&#x6211;&#x770B;&#x4E86;&#x6E96;&#x5099;&#x585E;&#x9032;&#x624B;&#x88E1;&#x7684;&#x5169;&#x9846;&#x6676;&#x7247;&#xFF0C;&#x5169;&#x500B;&#x4EBA;&#x5C31;&#x7528;&#x5F88;&#x7C21;&#x55AE;&#x7684;&#x65E5;&#x6587;&#x958B;&#x59CB;&#x5354;&#x8ABF;&#x8981;&#x88DD;&#x54EA;&#xFF0C;&#x8981;&#x4E0D;&#x8981;&#x6253;&#x9EBB;&#x85E5;&#x4E4B;&#x985E;&#x7684;(&#x600E;&#x9EBC;&#x53EF;&#x80FD;&#x4E0D;&#x7528;)&#xFF0C;&#x7136;&#x5F8C;&#x793A;&#x610F;&#x6211;&#x8EBA;&#x4E0B;</p>
<h4 id="%E5%B7%A6%E6%89%8B">&#x5DE6;&#x624B;</h4>
<p>&#x91AB;&#x751F;&#x5148;&#x62BD;&#x4E86;&#x4E00;&#x5927;&#x7BA1;&#x751F;&#x7406;&#x98DF;&#x9E7D;&#x6C34;&#x8DDF;&#x4E00;&#x4E9B;&#x9EBB;&#x9189;&#x85E5;&#xFF0C;&#x8AAA;&#x4E86;&#x4E00;&#x53E5;&#xFF0C;&#x306F;&#x3058;&#x307E;&#x308B;&#xFF0C;&#x5C31;&#x76F4;&#x63A5;&#x5F9E;&#x864E;&#x53E3;&#x6233;&#x9032;&#x53BB;&#xFF0C;&#x7B2C;&#x4E00;&#x91DD;&#x6709;&#x5920;&#x75DB;&#xFF0C;&#x4E4B;&#x5F8C;&#x624B;&#x5C31;&#x4E0D;&#x75DB;&#x4E86;&#xFF0C;&#x9084;&#x597D;&#x6C92;&#x88AB;&#x62D6;&#x53BB;&#x5272;&#x8170;&#x5B50;XD</p>
<p>&#x4E4B;&#x5F8C;&#x91AB;&#x751F;&#x4F7F;&#x7528;&#x4E00;&#x96BB;&#x91D1;&#x5C6C;&#x68D2;&#xFF0C;&#x958B;&#x59CB;&#x628A;&#x76AE;&#x8DDF;&#x8102;&#x80AA;&#x5206;&#x958B;&#xFF0C;&#x5F04;&#x51FA;&#x4E00;&#x500B;&#x5C0F;&#x6D1E;&#x525B;&#x597D;&#x53EF;&#x4EE5;&#x653E;&#x9032;&#x6676;&#x7247;&#xFF0C;&#x6211;&#x770B;&#x4ED6;&#x6233;&#x5F97;&#x6EFF;&#x982D;&#x5927;&#x6C57;<br>
&#x6211;: How is it?<br>
&#x91AB;: Your hand is soooo hard to separate.<br>
&#x6700;&#x5F8C;&#x641E;&#x4E86;&#x4E00;&#x9663;&#x5B50;&#xFF0C;&#x6676;&#x7247;&#x88AB;&#x653E;&#x4E86;&#x9032;&#x53BB;&#x53C8;&#x62FF;&#x51FA;&#x4F86;&#xFF0C;&#x91AB;&#x751F;&#x76F4;&#x63A5;&#x62FF;&#x526A;&#x5200;&#x51FA;&#x4F86;&#x628A;&#x6D1E;&#x6490;&#x958B;&#xFF0C;&#x628A;&#x6676;&#x7247;&#x585E;&#x9032;&#x53BB;&#xFF0C;&#x6700;&#x5F8C;&#x7E2B;&#x8D77;&#x4F86;&#xFF0C;&#x53EA;&#x7E2B;&#x4E86; 2 &#x91DD;&#xFF0C;&#x4E5F;&#x6C92;&#x6D41;&#x591A;&#x5C11;&#x8840;&#xFF0C;&#x6574;&#x500B;&#x904E;&#x7A0B;&#x5927;&#x6982;5&#x5206;&#x9418;&#xFF0C;&#x5C31;&#x53EA;&#x6709;&#x611F;&#x89BA;&#x624B;&#x88AB;&#x6233;&#xFF0C;&#x4E00;&#x9EDE;&#x75DB;&#x90FD;&#x6C92;&#x6709;</p>
<ul>
<li>&#x6233;&#x6233;&#x6A02;<br>
<img src="https://blog.power.li/content/images/2024/04/clideo_editor_9989d7fcb1bd40c585c93b5d83408830.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></li>
<li>&#x6012;&#x585E;<br>
<img src="https://blog.power.li/content/images/2024/04/clideo_editor_67c53d5ed88549298a4bd28f7f2260fe.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></li>
</ul>
<h4 id="%E5%8F%B3%E6%89%8B">&#x53F3;&#x624B;</h4>
<p>&#x91AB;&#x751F;&#x53C8;&#x62BD;&#x4E86;&#x4E00;&#x5927;&#x7BA1;&#x751F;&#x7406;&#x98DF;&#x9E7D;&#x6C34;&#x8DDF;&#x4E00;&#x4E9B;&#x9EBB;&#x9189;&#x85E5;&#xFF0C;&#x53C8;&#x8AAA;&#x4E86;&#x4E00;&#x53E5;&#xFF0C;&#x306F;&#x3058;&#x307E;&#x308B;&#xFF0C;&#x53C8;&#x76F4;&#x63A5;&#x5F9E;&#x864E;&#x53E3;&#x6233;&#x9032;&#x53BB;&#xFF0C;&#x4E5F;&#x662F;&#x6709;&#x5920;&#x75DB;&#xFF0C;&#x4E4B;&#x5F8C;&#x624B;&#x6709;&#x4E0D;&#x75DB;&#x4E86;<br>
&#x4F46;&#x9019;&#x6B21;&#x91AB;&#x751F;&#x76F4;&#x63A5;&#x7528;&#x526A;&#x5200;&#x76F4;&#x63A5;&#x5206;&#x958B;&#x76AE;&#x4E0B;&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x6B21;&#x901F;&#x5EA6;&#x8D85;&#x7D1A;&#x5FEB;&#xFF0C;3&#x5206;&#x9418;&#x5C31;&#x7D50;&#x675F;&#x4E86;&#xFF0C;&#x7E2B;&#x4E86; 3 &#x91DD;&#xFF0C;&#x4E5F;&#x662F;&#x6C92;&#x4EFB;&#x4F55;&#x611F;&#x89BA;&#xFF0C;&#x6700;&#x5F8C;&#x91AB;&#x751F;&#x7E2B;&#x5B8C;&#x9084;&#x8AAA;&#x4E86;&#x304B;&#x3093;&#x307A;&#x304D;&#xFF0C;&#x4E00;&#x81C9;&#x723D;&#x6A23;</p>
<h4 id="%E9%9B%A2%E9%96%8B%E8%A8%BA%E6%89%80">&#x96E2;&#x958B;&#x8A3A;&#x6240;</h4>
<p>&#x91AB;&#x751F;&#x53EA;&#x544A;&#x77E5;&#x8AAA;&#xFF0C;&#x4E00;&#x5929;&#x5167;&#x4E0D;&#x8981;&#x8B93;&#x50B7;&#x53E3;&#x78B0;&#x5230;&#x6C34;&#xFF0C;&#x5982;&#x679C;&#x6703;&#x75DB;&#x5C31;&#x5403;&#x6B62;&#x75DB;&#x85E5;&#xFF0C;&#x56E0;&#x70BA;&#x50B7;&#x53E3;&#x5F88;&#x5C0F;&#x6240;&#x4EE5;&#x5927;&#x6982;&#x660E;&#x5929;&#x5C31;&#x53EF;&#x4EE5;&#x78B0;&#x6C34;&#x4E86;</p>
<h4 id="%E5%9B%9E%E5%AE%B6">&#x56DE;&#x5BB6;</h4>
<p>&#x7D50;&#x679C;&#x6211;&#x90FD;&#x6C92;&#x5403;&#x6B62;&#x75DB;&#x85E5;&#xFF0C;&#x56E0;&#x70BA;&#x771F;&#x7684;&#x6C92;&#x5565;&#x611F;&#x89BA;&#xFF0C;&#x75DB;&#x4E5F;&#x662F;&#x624B;&#x6478;&#x5230;&#x50B7;&#x53E3;&#xFF0C;&#x8AAA;&#x6709;&#x7684;&#x7570;&#x7269;&#x611F;&#x5DF2;&#x6C92;&#x5565;&#x611F;&#x89BA;</p>
<h4 id="day-1">Day 1</h4>
<p><img src="https://blog.power.li/content/images/2024/04/d1-1.jpg" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="day-3">Day 3</h4>
<p><img src="https://blog.power.li/content/images/2024/04/d3.jpg" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="day-7">Day 7</h4>
<p><img src="https://blog.power.li/content/images/2024/04/d7.jpg" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="day-10">Day 10</h4>
<p><img src="https://blog.power.li/content/images/2024/04/d10.jpg" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="day-15">Day 15</h4>
<p><img src="https://blog.power.li/content/images/2024/04/d15.jpg" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<p>&#x5176;&#x5BE6;&#x6062;&#x5FA9;&#x883B;&#x5FEB;&#x7684;&#xFF0C;&#x53EF;&#x80FD;&#x90A3;&#x500B;&#x91AB;&#x751F;&#x771F;&#x7684;&#x61C2;&#x7E2B;</p>
<h3 id="%E5%BF%83%E5%BE%97">&#x5FC3;&#x5F97;</h3>
<p>&#x9019;&#x5E7E;&#x5929;&#x7528;&#x4E0B;&#x4F86;&#x7684;&#x611F;&#x89BA;&#xFF0C;&#x6709;&#x512A;&#x9EDE;&#x4E5F;&#x6709;&#x7F3A;&#x9EDE;</p>
<h4 id="%E5%B7%A6%E6%89%8B-m1">&#x5DE6;&#x624B; M1</h4>
<ul>
<li>&#x8DDD;&#x96E2;&#x9084;&#x884C;&#xFF0C;&#x8981;&#x627E;&#x4E00;&#x4E0B;&#x89D2;&#x5EA6;</li>
<li>&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7528; Android &#x63DB; UID &#x771F;&#x7684;&#x8D85;&#x7D1A;&#x65B9;&#x4FBF;
<ul>
<li>&#x76F4;&#x63A5;&#x5BEB;&#x4E86;&#x4E00;&#x500B; <a href="https://github.com/pccr10001/mifare-uid-changer?ref=blog.power.li">Mifare UID Changer</a></li>
</ul>
</li>
<li>&#x67D0;&#x4E9B;&#x5783;&#x573E;&#x8B80;&#x5361;&#x6A5F;&#x5C31;&#x662F;&#x8B80;&#x4E0D;&#x5230;&#xFF0C;&#x7562;&#x7ADF;&#x5929;&#x7DDA;&#x7684;&#x5927;&#x5C0F;&#x5C31;&#x90A3;&#x6A23;
<ul>
<li>&#x8A02;&#x4E86; 13.56 MHz &#x653E;&#x5927;&#x5668;&#x9084;&#x6C92;&#x5230;</li>
<li>&#x771F;&#x7684;&#x5C31;&#x662F;&#x90A3;&#x5BB6;&#x5EE0;&#x5546;&#x505A;&#x7684;&#x5C31;&#x662F;&#x4E0D;&#x884C;</li>
</ul>
</li>
<li>&#x5927;&#x90E8;&#x5206;&#x7684;&#x9580;&#x7981;&#x6A5F;&#x90FD;&#x53EF;&#x4EE5;&#x611F;&#x61C9;&#x7684;&#x5230;</li>
<li>&#x56DE;&#x5BB6;&#x958B;&#x9580;&#x9023;&#x624B;&#x6A5F;&#x90FD;&#x4E0D;&#x7528;&#x62FF;&#xFF0C;&#x6709;&#x6642;&#x5019;&#x6BD4;&#x6307;&#x7D0B;&#x9084;&#x5FEB;</li>
</ul>
<h4 id="%E5%8F%B3%E6%89%8B-apex">&#x53F3;&#x624B; Apex</h4>
<ul>
<li>&#x5BB9;&#x91CF;&#x4E0D;&#x5927;&#xFF0C;&#x88DD;&#x4E86; Tesla Key + Wallet + FIDO + HMAC Generator &#x5C31;&#x6C92;&#x5565;&#x7A7A;&#x9593;&#x4E86;&#xFF0C;&#x672C;&#x4F86;&#x9084;&#x60F3;&#x653E;&#x4E00;&#x500B; SmartPGP &#x5C31;&#x653E;&#x4E0D;&#x4E0B;</li>
<li>&#x4E0D;&#x597D;&#x611F;&#x61C9;&#xFF0C;Amal &#x8AAA;&#x662F;&#x56E0;&#x70BA;&#x65B0;&#x7684; JavaCard &#x6676;&#x7247;&#x5BB9;&#x91CF;&#x8DDF; RAM &#x90FD;&#x6BD4;&#x8F03;&#x5927;&#xFF0C;&#x6240;&#x4EE5;&#x6BD4;&#x8F03;&#x5403;&#x96FB;&#xFF0C;&#x4E5F;&#x8981;&#x6293;&#x4E00;&#x4E0B;&#x89D2;&#x5EA6;</li>
<li>&#x958B; Tesla &#x8ECA;&#x9396;&#x8981;&#x904B;&#x6C23;&#xFF0C;B &#x67F1;&#x611F;&#x61C9; 10 &#x6B21;&#x80FD;&#x6210;&#x529F; 7 &#x6B21;&#xFF0C;&#x4E2D;&#x63A7;&#x53F0;&#x90FD;&#x80FD;&#x6210;&#x529F;</li>
<li>&#x624B;&#x6A5F;&#x611F;&#x61C9;&#x6C92;&#x554F;&#x984C;&#xFF0C;&#x4E5F;&#x662F;&#x8981;&#x627E;&#x4E00;&#x4E0B;&#x5929;&#x7DDA;&#x4F4D;&#x7F6E;</li>
<li>&#x4E0D;&#x7528;&#x5E36; Authenticator &#x771F;&#x7684;&#x8D85;&#x65B9;&#x4FBF;&#xFF0C;Passkey &#x4E5F;&#x80FD;&#x7528;
<ul>
<li>&#x6BD4;&#x6253;&#x958B; Authy &#x8907;&#x88FD; OTP &#x518D;&#x53BB;&#x8CBC;&#x4E0A;&#x9084;&#x8981;&#x5FEB;&#xFF0C;&#x9084;&#x80FD;&#x907F;&#x514D; Chrome &#x88AB;&#x6E05;&#x6389;</li>
</ul>
</li>
<li>Apex Manager &#x6C92;&#x6709;&#x958B;&#x6E90;&#xFF0C;&#x60F3; Contribute &#x4E5F;&#x6C92;&#x8FA6;&#x6CD5;</li>
</ul>
<p>&#x6574;&#x9AD4;&#x4F86;&#x8AAA;&#xFF0C;&#x771F;&#x7684;&#x662F;&#x6EFF;&#x610F;&#x81F3;&#x6975;&#xFF0C;&#x5BB3;&#x6211;&#x9084;&#x60F3;&#x53BB;&#x641E;&#x4E00;&#x500B; LED &#x8DDF;&#x78C1;&#x9435;</p>
<h3 id="%E5%AF%A6%E6%B8%AC">&#x5BE6;&#x6E2C;</h3>
<h4 id="%E9%96%8B%E9%96%80">&#x958B;&#x9580;</h4>
<p><img src="https://blog.power.li/content/images/2024/04/clideo_editor_c43065cfae9b41a0988f60341cf7080d-ezgif.com-optimize.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<p><img src="https://blog.power.li/content/images/2024/04/clideo_editor_aa8e05521a684f35af8887441454-ezgif.com-optimize.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="tesla-%E9%96%8B%E9%96%80">Tesla &#x958B;&#x9580;</h4>
<p><img src="https://blog.power.li/content/images/2024/04/clideo_editor_f29d9b028a8b49c0a6813e8434c617c2-ezgif.com-optimize-1.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
<h4 id="%E5%B9%AB%E8%BB%8A%E8%BB%8A%E5%85%85%E9%9B%BB">&#x5E6B;&#x8ECA;&#x8ECA;&#x5145;&#x96FB;</h4>
<p><img src="https://blog.power.li/content/images/2024/04/clideo_editor_ec737a5092ae439ab2d8f4e8b1cf8e66-ezgif.com-optimize.gif" alt="&#x628A;&#x624B;&#x624B;&#x8B8A;&#x6210; NFC &#x611F;&#x61C9;&#x5361;" loading="lazy"></p>
]]></content:encoded></item><item><title><![CDATA[攔截 Flutter App 的 HTTPS 要求]]></title><description><![CDATA[修改 Flutter 的 Core library 來取消 Flutter 檢查憑證的功能，讓 Debugging Proxy 可以攔截與修改 HTTP 的 Request 與 Response]]></description><link>https://blog.power.li/flutter-https-over-proxy/</link><guid isPermaLink="false">661a048a1b1ed900011681cd</guid><category><![CDATA[flutter]]></category><category><![CDATA[reverse-engineering]]></category><category><![CDATA[mitm]]></category><category><![CDATA[proxy]]></category><dc:creator><![CDATA[Power Li]]></dc:creator><pubDate>Fri, 04 Dec 2020 03:14:07 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1548681528-6a5c45b66b42?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MXwxMTc3M3wwfDF8c2VhcmNofDN8fHxlbnwwfHx8&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1548681528-6a5c45b66b42?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MXwxMTc3M3wwfDF8c2VhcmNofDN8fHxlbnwwfHx8&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="&#x6514;&#x622A; Flutter App &#x7684; HTTPS &#x8981;&#x6C42;"><p>&#x6700;&#x8FD1;&#x5728;&#x505A;&#x4E00;&#x4E9B; Flutter App &#x7684; PT&#xFF0C;&#x9700;&#x8981;&#x6514;&#x622A; App &#x5230; Backend &#x7684;&#x8981;&#x6C42;&#xFF0C;&#x53D6;&#x5F97; API List&#x6216;&#x4FEE;&#x6539; Request / Response&#x3002;</p><hr><p>&#x5728; Android 6.0 &#x4EE5;&#x524D;&#xFF0C;&#x8981;&#x6514;&#x622A; App &#x7684; HTTP &#x8981;&#x6C42;&#xFF0C;&#x53EA;&#x9700;&#x8981;&#x65BC;Wi-Fi &#x8A2D;&#x5B9A;&#x4E2D;&#xFF0C;&#x5C07; Proxy &#x6307;&#x5411; BurpSuite / Fiddler / Charles&#xFF0C;&#x5B89;&#x88DD; Debugging Proxy &#x7684; CA &#x6191;&#x8B49;&#xFF0C;&#x5C31;&#x80FD;&#x6210;&#x529F;&#x6293;&#x5305;&#x4E86;&#x3002;</p><p>&#x4F46;&#x662F;&#x5728; Android 7.0 &#x4E4B;&#x5F8C;&#xFF0C;&#x589E;&#x52A0;&#x4E86; App Network Security&#xFF0C;&#x5C31;&#x50CF; Certificate Pinning &#x4E00;&#x6A23;&#xFF0C;&#x5982;&#x679C;&#x6C92;&#x6709;&#x6307;&#x5B9A;&#x5141;&#x8A31;&#x7684; CA &#x5728; <code>network_security_config.xml</code> &#x4E2D;&#xFF0C;Android &#x5C31;&#x4E0D;&#x6703;&#x8B93;&#x7DB2;&#x8DEF;&#x6D41;&#x91CF;&#x7D93;&#x904E; Proxy&#x3002;<br>
&#x6709;&#x4F4D;&#x5927;&#x795E;&#x5BEB;&#x4E86;&#x4E00;&#x500B;&#x81EA;&#x52D5;&#x5316;&#x5DE5;&#x5177;&#x653E;&#x5728; <a href="https://github.com/levyitay/AddSecurityExceptionAndroid?ref=blog.power.li">Github</a> &#x4E0A;&#xFF0C;&#x89E3;&#x5305; APK &#x5F8C;&#xFF0C;&#x585E;&#x5165;&#x5141;&#x8A31;&#x6240;&#x6709; CA &#x7684; <code>network_security_config.xml</code> &#xFF0C;&#x6D41;&#x91CF;&#x5C31;&#x80FD;&#x88AB; Proxy &#x63A5;&#x6536;&#x4E86;&#x3002;</p>
<p>Flutter &#x7684; App &#x5C31;&#x4E0D;&#x4E00;&#x6A23;&#x4E86;&#xFF0C;Flutter &#x7528;&#x4E86;&#x81EA;&#x5DF1;&#x7684; Runtime Engine &#x53BB;&#x57F7;&#x884C; dart bytecode &#xFF0C;&#x6240;&#x4EE5;&#x5728; apk &#x88E1;&#x7684; <code>lib</code> &#x8CC7;&#x6599;&#x593E;&#x4E2D;&#xFF0C;&#x6BCF;&#x500B; arch &#x90FD;&#x6703;&#x5404;&#x81EA;&#x5E73;&#x53F0;&#x7684; <code>libfultter.so</code> &#x53BB;&#x57F7;&#x884C; <code>kernel_blob.bin</code>(Non-Release Mode) / <code>libapp.so</code>(Release Mode)&#x3002;<br>
&#x5982;&#x679C; apk &#x662F; Debug Mode &#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5F9E; <code>kernel_blob.bin</code> &#x88E1;&#x53BB;&#x9084;&#x539F;&#x7A0B;&#x5F0F;&#x78BC;&#xFF0C;Release Mode &#x5C31;&#x6C92;&#x8FA6;&#x6CD5;&#x4E86;&#x3002;</p>
<p>Flutter &#x4F7F;&#x7528;&#x4E86; BoringSSL &#x5957;&#x4EF6;&#x53BB;&#x5EFA;&#x7ACB; TLS &#x9023;&#x7DDA;&#xFF0C;&#x539F;&#x59CB;&#x78BC;&#x53EF;&#x4EE5;&#x5728; Flutter &#x5B98;&#x65B9;&#x7684; repo &#x88E1;&#x9762;&#x627E;&#x5230;&#x3002;</p>
<hr><p>&#x6240;&#x4EE5;&#x70BA;&#x4E86;&#x6514;&#x622A; Release App &#x7684; HTTP Request&#xFF0C;&#x6709;&#x5E7E;&#x4EF6;&#x4E8B;&#x60C5;&#x8981;&#x5B8C;&#x6210;&#xFF1A;</p>
<ol>
<li>&#x6514;&#x622A; App &#x7684;&#x6D41;&#x91CF;&#xFF0C;&#x5C0E;&#x5411;&#x5230; Debugging Proxy</li>
<li>Bypass Flutter &#x7684; CA &#x6191;&#x8B49;&#x6AA2;&#x67E5;</li>
<li>Resquest / Response &#x6539;&#x8D77;&#x4F86;</li>
</ol>
<hr><h3 id="1-%E6%94%94%E6%88%AA-app-%E7%9A%84%E6%B5%81%E9%87%8F%EF%BC%8C%E5%B0%8E%E5%90%91%E5%88%B0-debugging-proxy">1. &#x6514;&#x622A; App &#x7684;&#x6D41;&#x91CF;&#xFF0C;&#x5C0E;&#x5411;&#x5230; Debugging Proxy</h3>
<p>&#x6709;&#x5206;&#x70BA; Rooted &#x8DDF; Non-Rooted &#x7684;&#x65B9;&#x6CD5;&#xFF1A;</p>
<ul>
<li>Rooted
<ul>
<li><code>iptables</code>
<ul>
<li>&#x592A;&#x9EBB;&#x7169;&#x4E86;</li>
</ul>
</li>
<li><a href="https://play.google.com/store/apps/details?id=org.proxydroid&amp;hl=zh_TW&amp;gl=US&amp;ref=blog.power.li">ProxyDroid</a>
<ul>
<li>&#x81EA;&#x52D5;&#x7522;&#x751F; iptables &#x6307;&#x4EE4;&#x5957;&#x7528;&#xFF0C;&#x7C21;&#x55AE;</li>
</ul>
</li>
</ul>
</li>
<li>Non-Rooted<br>
&#x9019;&#x90E8;&#x5206;&#x9069;&#x5408; Android &#x7248;&#x672C;&#x6BD4;&#x8F03;&#x9AD8;&#x7684;&#x72C0;&#x6CC1;&#xFF0C;&#x7562;&#x7ADF;&#x73FE;&#x5728;&#x624B;&#x6A5F; Root &#x4E4B;&#x5F8C;&#x5C11;&#x4E86;&#x4E00;&#x5806;&#x529F;&#x80FD;&#x3002;
<ul>
<li><a href="https://github.com/pccr10001/VPN2SOCK?ref=blog.power.li">VPN2SOCK</a>
<ul>
<li>&#x7528; <code>tun2sock</code> + VPN &#x6514;&#x622A;&#x6D41;&#x91CF;</li>
<li>&#x81EA;&#x5DF1;&#x5BEB;&#x7684; PoC&#xFF0C;&#x9084;&#x6709;&#x6EFF;&#x6EFF;&#x7684; Bug</li>
</ul>
</li>
</ul>
</li>
<li>Android &#x6A21;&#x64EC;&#x5668;
<ul>
<li>LDPlayer
<ul>
<li>&#x6709;&#x5167;&#x5EFA; Root / ADB</li>
<li>&#x6709; Android 5.1 / 7.1 &#x53EF;&#x9078;</li>
<li>&#x6211;&#x662F;&#x7528;&#x9019;&#x500B;&#x5566;&#xFF0C;&#x7528; Android 5.1 &#x7248;&#x7684;&#xFF0C;&#x76F4;&#x63A5;&#x958B; ProxyDroid&#x5C31;&#x597D;</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr><h3 id="2-bypass-flutter-%E7%9A%84-ca-%E6%86%91%E8%AD%89%E6%AA%A2%E6%9F%A5">2. Bypass Flutter &#x7684; CA &#x6191;&#x8B49;&#x6AA2;&#x67E5;</h3>
<p>&#x6839;&#x64DA;<a href="https://stackoverflow.com/questions/54285172/how-to-solve-flutter-certificate-verify-failed-error-while-performing-a-post-req?ref=blog.power.li">&#x9019;&#x7BC7;</a>&#x7684;&#x932F;&#x8AA4;&#x8A0A;&#x606F;(&#x4E0D;&#x77E5;&#x9053;&#x70BA;&#x4EC0;&#x9EBC;&#x6211;&#x7684; App &#x6C92;&#x51FA;&#x73FE; Exception)&#xFF0C;Flutter &#x7684; TLS handshake failed &#x51FA;&#x73FE;&#x5728; <a href="https://github.com/google/boringssl/blob/master/ssl/handshake.cc?ref=blog.power.li#L352">handshake.cc</a> &#x7684; 352 &#x884C;&#xFF0C;&#x539F;&#x56E0;&#x662F; <code>CERTIFICATE_VERIFY_FAILED</code>&#x3002;</p>
<p>&#x67E5;&#x770B; <code>handshake.cc</code> &#x7684;&#x539F;&#x59CB;&#x78BC;&#xFF0C;&#x767C;&#x73FE; flutter &#x53D6;&#x5F97; <code>session_verify_cert_chain</code> &#x56DE;&#x50B3;&#x7684; boolean&#xFF0C;&#x4F86;&#x5224;&#x65B7;&#x6AA2;&#x67E5;&#x6191;&#x8B49;&#x662F;&#x5426;&#x5408;&#x6CD5;&#x3002;<br>
&#x90A3;&#x5C31;&#x8B93; <code>session_verify_cert_chain</code> &#x6C38;&#x9060;&#x56DE;&#x50B3; <code>true</code> &#x5C31;&#x597D;&#x4E86;&#x3002;</p>
<figure class="kg-card kg-image-card"><img src="https://blog.power.li/content/images/2020/12/--.png" class="kg-image" alt="&#x6514;&#x622A; Flutter App &#x7684; HTTPS &#x8981;&#x6C42;" loading="lazy" width="586" height="276"></figure><p>&#x627E;&#x4E86;&#x4E00;&#x4E0B;&#xFF0C;&#x767C;&#x73FE; <code>session_verify_cert_chain</code> &#x4F4D;&#x5728; <a href="https://github.com/google/boringssl/blob/master/ssl/ssl_x509.cc?ref=blog.power.li#L362">ssl_x509.cc:362</a> &#xFF0C;&#x5728; <a href="https://github.com/google/boringssl/blob/master/ssl/ssl_x509.cc?ref=blog.power.li#L391">ssl_x509.cc:391</a> &#x8DDF; <a href="https://github.com/google/boringssl/blob/master/ssl/ssl_x509.cc?ref=blog.power.li#L411">ssl_x509.cc:411</a> &#x6709; 2 &#x8655; <code>return false</code>&#xFF0C;&#x628A;&#x9019;&#x5169;&#x500B;&#x5730;&#x65B9; patch &#x6210; <code>return true</code> &#x5C31;&#x597D;&#x4E86;!!</p>
<hr><h4 id="libfultterso-armeabi-v7a">libfultter.so @ armeabi-v7a</h4>
<ul>
<li>&#x5C31;&#x662F; 32 bits &#x7684; ARM</li>
<li>&#x5982;&#x679C;&#x61F6;&#x60F0;&#x7684;&#x8A71;&#xFF0C;&#x53EA;&#x8981; patch &#x9019;&#x500B; Arch &#x5C31;&#x597D;&#xFF0C;&#x5927;&#x591A;&#x6578;&#x7684;&#x624B;&#x6A5F;(<code>arm64</code>, <code>x86</code>, <code>x86_64</code>)&#x70BA;&#x4E86;&#x76F8;&#x5BB9;&#x6027;&#x90FD;&#x6709;&#x653E; ARM 32 bits &#x7684; runtime&#xFF0C;LDPlayer &#x8DDF;&#x6211;&#x7684; S10 &#x4E5F;&#x6709;&#xFF0C;x86 &#x7684;&#x5C31;&#x7576;&#x4F5C;&#x7DF4;&#x7FD2;&#x5427;&#x3002;</li>
</ul>
<p>&#x5148;&#x7528; Ghidra &#x6253;&#x958B; <code>lib/armeabi-v7a/libflutter.so</code>&#x3002;<br>
&#x70BA;&#x4E86;&#x627E;&#x5230; <code>session_verify_cert_chain</code>&#xFF0C;&#x770B;&#x4E86;&#x4E00;&#x4E0B; Source&#xFF0C;&#x9019;&#x500B;&#x65B9;&#x6CD5;&#x6709; 3 &#x500B; input&#xFF0C;&#x4E5F;&#x6709;&#x500B; macro <code>OPENSSL_PUT_ERROR</code> &#x7528;&#x4F86;&#x5370;&#x51FA;&#x932F;&#x8AA4;&#x8A0A;&#x606F;&#xFF0C;&#x5B9A;&#x7FA9;&#x5728; <a href="https://github.com/google/boringssl/blob/master/include/openssl/err.h?ref=blog.power.li#L422">err.h:422</a>&#xFF0C;&#x6703;&#x8B93;&#x932F;&#x8AA4;&#x8A0A;&#x606F;&#x986F;&#x793A;&#x51FA;&#x6A94;&#x540D;&#x8DDF;&#x884C;&#x6578;&#xFF0C;&#x6240;&#x4EE5;&#x5C31;&#x5728; Ghidra &#x4E2D;&#x5C0B;&#x627E; <code>ssl_x509.cc</code> &#x9019;&#x500B;&#x5B57;&#x4E32;&#xFF0C;&#x627E; xrefs &#x7684; function &#x4E26;&#x4E14;&#x662F; 3 &#x500B; input &#x7684;&#x5C31;&#x662F;&#x4E86;&#x3002;</p>
<p>Ghidra -&gt; Search -&gt; Program Text&#xFF0C;&#x641C;&#x5C0B; <code>ssl_x509.cc</code>&#x3002;<br>
&#x6709; 7 &#x500B; xrefs</p>
<figure class="kg-card kg-image-card"><img src="https://blog.power.li/content/images/2020/12/---2.png" class="kg-image" alt="&#x6514;&#x622A; Flutter App &#x7684; HTTPS &#x8981;&#x6C42;" loading="lazy" width="1018" height="390" srcset="https://blog.power.li/content/images/size/w600/2020/12/---2.png 600w, https://blog.power.li/content/images/size/w1000/2020/12/---2.png 1000w, https://blog.power.li/content/images/2020/12/---2.png 1018w" sizes="(min-width: 720px) 720px"></figure><p>&#x5728; <code>FUN_012c68b4</code> &#x4E2D;&#xFF0C;&#x770B;&#x5230;&#x6709;3&#x500B; input&#xFF0C;&#x4E00;&#x500B; <code>FUN_0127d008</code> (<code>OPENSSL_PUT_ERROR</code>) &#xFF0C;<code>OPENSSL_PUT_ERROR</code>&#xFF0C;Line Number <code>0x186</code> = <code>390</code> &#x4E5F;&#x662F;&#x5728; <code>session_verify_cert_chain</code> &#x88E1;&#x9762;&#x3002;</p>
<figure class="kg-card kg-image-card"><img src="https://blog.power.li/content/images/2020/12/---5.png" class="kg-image" alt="&#x6514;&#x622A; Flutter App &#x7684; HTTPS &#x8981;&#x6C42;" loading="lazy" width="644" height="158" srcset="https://blog.power.li/content/images/size/w600/2020/12/---5.png 600w, https://blog.power.li/content/images/2020/12/---5.png 644w"></figure><figure class="kg-card kg-image-card"><img src="https://blog.power.li/content/images/2020/12/---6.png" class="kg-image" alt="&#x6514;&#x622A; Flutter App &#x7684; HTTPS &#x8981;&#x6C42;" loading="lazy" width="891" height="173" srcset="https://blog.power.li/content/images/size/w600/2020/12/---6.png 600w, https://blog.power.li/content/images/2020/12/---6.png 891w" sizes="(min-width: 720px) 720px"></figure><p>&#x9EDE;&#x4E00;&#x4E0B;&#x7B2C; 14 &#x884C;&#x7684; <code>return 0</code> &#x5C31;&#x6703;&#x5B9A;&#x4F4D;&#x5230; function &#x7684;&#x7D50;&#x5C3E;&#x3002;</p>
<pre><code class="language-asm=">                             LAB_012c696c
        012c696c 00  24           mov        r4,#0x0         // Line #18 return 0;
        012c696e 0d  e0           b          LAB_012c698c
                             LAB_012c6970

        012c6970 4f  f4  c3  70   mov.w      r0,#0x186
        012c6974 00  21           mov        r1,#0x0
        012c6976 00  90           str        r0,[sp,#0x0 ]
        012c6978 10  20           mov        r0,#0x10
        012c697a 15  4b           ldr        r3,[DAT_012c69d0 ]                               = FEE39C79h
        012c697c 0b  22           mov        r2,#0xb
        012c697e 00  24           mov        r4,#0x0        // Line #62 uVar4 = 0;
        012c6980 7b  44           add        r3=&gt;s_...
        012c6982 b6  f7  41  fb    bl         FUN_0127d008  // OPENSSL_PUT_ERROR 

                             LAB_012c6986
        012c6986 03  a8           add        r0,sp,#0xc
        012c6988 d8  f7  ce  fc    bl         FUN_0129f328

                             LAB_012c698c                   // return
        012c698c 20  46           mov        r0,r4
        012c698e 23  b0           add        sp,#0x8c
        012c6990 bd  e8  f0  8f   pop.w      { r4, r5, r6, r7, r8, r9, r10 , r11 , pc }

</code></pre>
<p>&#x53EA;&#x8981;&#x5C07; L18 &#x7684; <code>return 0</code> &#x8DDF; L62 &#x7684; <code>uVar4 = 0</code> &#x63DB;&#x6210; 1 &#x5C31;&#x53EF;&#x4EE5;&#x4E86;&#x3002;</p>
<p>&#x5F9E; <a href="https://armconverter.com/?code=movs+r4%2C+1&amp;ref=blog.power.li">Online ARM Assambler</a> &#x53D6;&#x5F97; <code>movs r4, 1</code> &#x7684; OpCode <code>0124</code>&#x7528; Hex Editor &#x6539;&#xFF0C;&#x6216;&#x662F;&#x76F4;&#x63A5;&#x5728; Ghidra &#x4E2D;&#xFF0C;&#x5728;<code>movs r4, 0x0</code> &#x53F3;&#x9375;&#x9078; Patch Instruction&#xFF0C;&#x628A; <code>0x0</code> &#x6539;&#x6210; <code>0x1</code>&#xFF0C;&#x5B58;&#x6A94;&#x3002;</p>
<p>&#x628A; <code>libflutter.so</code> &#x585E;&#x56DE; apk &#x88E1;&#x9762;&#xFF0C;&#x91CD;&#x65B0;&#x7528; <code>apksigner</code> &#x7C3D;&#x7AE0;&#xFF0C;&#x4E1F;&#x9032;&#x624B;&#x6A5F;&#x5B89;&#x88DD;&#x3002;</p>
<hr><h3 id="referance">Referance</h3>
<p><a href="https://orangewirelabs.wordpress.com/2019/06/04/bypassing-root-ca-checks-in-flutter-based-apps-on-android/?ref=blog.power.li">https://orangewirelabs.wordpress.com/2019/06/04/bypassing-root-ca-checks-in-flutter-based-apps-on-android/</a></p>
]]></content:encoded></item></channel></rss>