<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pycdc</title>
	<atom:link href="https://javeo.jp/tag/pycdc/feed/" rel="self" type="application/rss+xml" />
	<link>https://javeo.jp</link>
	<description>ほどほどレベルのプログラミング</description>
	<lastBuildDate>Sun, 09 Jun 2024 16:40:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://javeo.jp/wp-content/uploads/2025/08/cropped-ExcelPython_future-32x32.jpg</url>
	<title>pycdc</title>
	<link>https://javeo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】pyinstallerで作成されたexeをpyファイルに戻したい</title>
		<link>https://javeo.jp/decompile-pyinstaller/</link>
					<comments>https://javeo.jp/decompile-pyinstaller/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sun, 26 Nov 2023 06:06:44 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[pycdc]]></category>
		<category><![CDATA[pyinstaller]]></category>
		<category><![CDATA[pyinstxtractor]]></category>
		<category><![CDATA[デコンパイル]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=1584</guid>

					<description><![CDATA[目次 exeからpｙcファイルを抽出するpyinstxtractor-ng の場合pyinstxtractor-ng.exeの使い方pyinstxtractor-web の場合.pycファイルを.pyファルにするpycd [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-cocoon-blocks-info-box block-box primary-box">

<p>pyinstallerで作成されたexeをpyファイルに戻す方法を調べると複数のパターンがあって、なかなかうまくいく方法に出会うことができませんでしたが、唯一なんとかなった方法を書き残します</p>


<p>ただ完全に復元できるわけではなく、かなり欠損もあり過度な期待はせず参考ソースが抽出できるぐらいでお願いします！！</p>

</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">exeからpｙcファイルを抽出する</a><ol><li><a href="#toc2" tabindex="0">pyinstxtractor-ng の場合</a><ol><li><a href="#toc3" tabindex="0">pyinstxtractor-ng.exeの使い方</a></li></ol></li><li><a href="#toc4" tabindex="0">pyinstxtractor-web の場合</a></li></ol></li><li><a href="#toc5" tabindex="0">.pycファイルを.pyファルにする</a><ol><li><a href="#toc6" tabindex="0">pycdcの使い方</a></li></ol></li><li><a href="#toc7" tabindex="0">もとのpyファイルとどれくらい違うのか</a><ol><li><a href="#toc8" tabindex="0">&#8220;#WARNING: Decompyle incomplete&#8221;以下の欠損</a></li><li><a href="#toc9" tabindex="0">コメントがなくなる</a></li><li><a href="#toc10" tabindex="0">引数が「**kwargs」になりがち</a></li><li><a href="#toc11" tabindex="0">引数の解釈がおかしい時がある</a></li><li><a href="#toc12" tabindex="0">ネストされたifなどが（間違って？）まとめられる</a></li></ol></li><li><a href="#toc13" tabindex="0">あとがき</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">exeからpｙcファイルを抽出する</span></h2>



<p><span class="marker-under">pyinstxtractor</span>を利用するのでGithubからインストール</p>



<p><a rel="noopener noreferrer" target="_blank" href="https://github.com/extremecoders-re/pyinstxtractor">https://github.com/extremecoders-re/</a><a rel="noreferrer noopener" target="_blank" href="https://github.com/extremecoders-re/pyinstxtractor">pyinstxtractor</a></p>



<p>引数にpyファイルに戻したいexeファイルを指定してpyinstxtractor.pyを実行して・・・<br>なんですが、下部にあるリンク（pyinstxtractor-ng or pyinstxtractor-web）ならもっと簡単に利用できるので一旦省略</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><a rel="noopener noreferrer" target="_blank" href="https://github.com/pyinstxtractor/pyinstxtractor-ng">pyinstxtractor-ng</a>: A standalone binary version of pyinstxtractor. This tool doesn&#8217;t require Python to run and can extract all supported versions of PyInstaller. It also supports encrypted pyinstaller executables.</li>



<li><a rel="noopener noreferrer" target="_blank" href="https://github.com/pyinstxtractor/pyinstxtractor-go">pyinstxtractor-web</a>: pyinstxtractor running in the web browser, powered by Go &amp; GopherJS.</li>
</ul>
<cite>https://github.com/extremecoders-re/pyinstxtractor</cite></blockquote>



<h3 class="wp-block-heading"><span id="toc2">pyinstxtractor-ng の場合</span></h3>



<p>リンク先のGithubに目当てのファイルが・・無い！！</p>



<p>もう一つ先のリンクにあるので↓の通り<a rel="noopener noreferrer" target="_blank" href="https://github.com/pyinstxtractor/pyinstxtractor-ng/releases">releases</a>へ遷移</p>



<div class="wp-block-group is-style-default is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-jetpack-slideshow alignfull" data-effect="slide"><div class="wp-block-jetpack-slideshow_container swiper-container"><ul class="wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"><li class="wp-block-jetpack-slideshow_slide swiper-slide"><figure><img fetchpriority="high" decoding="async" width="1024" height="555" alt="" class="wp-block-jetpack-slideshow_image wp-image-1586" data-id="1586" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-1024x555.png" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_13h14_31.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="wp-block-jetpack-slideshow_slide swiper-slide"><figure><img decoding="async" width="1920" height="1040" alt="" class="wp-block-jetpack-slideshow_image wp-image-1613" data-id="1613" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4.png" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4.png 1920w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_17h04_22-4-1536x832.png 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure></li></ul><a rel="follow noopener noreferrer" target="_blank" class="wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white" role="button"></a><a rel="follow noopener noreferrer" target="_blank" class="wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white" role="button"></a><a rel="follow noopener noreferrer" target="_blank" aria-label="Pause Slideshow" class="wp-block-jetpack-slideshow_button-pause" role="button"></a><div class="wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white"></div></div></div>
</div>
</div>



<p>最新版のところから「<span class="bold-red">pyinstxtractor-ng.exe</span>」をダウンロードしてくる</p>



<h4 class="wp-block-heading"><span id="toc3">pyinstxtractor-ng.exeの使い方</span></h4>



<p>使い方はとても簡単。exeファイルを「<span class="bold-red">pyinstxtractor-ng.exe</span>」へドラッグ＆ドロップするだけ！</p>



<figure class="wp-block-image size-full"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor.gif"><img decoding="async" width="962" height="542" src="https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor.gif" alt="" class="wp-image-1588"/></a></figure>



<p>{exeファイル名}_extractedのフォルダが作成されて、その中にフォルダ＆ファイルが多数ありますが、<span class="marker-under">拡張子が.pycになっているexeファイルと同じ名前のファイル</span>があるのでこれを次工程へ</p>



<h3 class="wp-block-heading"><span id="toc4">pyinstxtractor-web の場合</span></h3>



<p>リンク名が&#8221;pyinstxtractor-web&#8221;なのWEBページへのリンクかと思いきや行き着く先はGo言語で構成するpyinstxtractorのGithubページへ ※私Goは全くわかりません・・</p>



<p>なんですが、大事なのは少し下にある今度こそWEBページのリンク</p>



<figure class="wp-block-image size-large"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go.png"><img decoding="async" width="1024" height="555" src="https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-1024x555.png" alt="" class="wp-image-1603" srcset="https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/11/pyinstxtractor-go.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>行き着く先はpyinstxtractor-ng.exeと同じことができるWEBページ</p>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-group is-style-default is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-jetpack-slideshow alignfull" data-effect="slide"><div class="wp-block-jetpack-slideshow_container swiper-container"><ul class="wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"><li class="wp-block-jetpack-slideshow_slide swiper-slide"><figure><img decoding="async" width="1024" height="555" alt="" class="wp-block-jetpack-slideshow_image wp-image-1591" data-id="1591" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43-1024x555.png" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_18h08_43.png 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="wp-block-jetpack-slideshow_slide swiper-slide"><figure><img decoding="async" width="1440" height="780" alt="" class="wp-block-jetpack-slideshow_image wp-image-1615" data-id="1615" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1.png" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1.png 1440w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_21h53_42-1-768x416.png 768w" sizes="(max-width: 1440px) 100vw, 1440px" /></figure></li></ul><a rel="follow noopener noreferrer" target="_blank" class="wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white" role="button"></a><a rel="follow noopener noreferrer" target="_blank" class="wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white" role="button"></a><a rel="noopener noreferrer" target="_blank" aria-label="Pause Slideshow" class="wp-block-jetpack-slideshow_button-pause" role="button"></a><div class="wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white"></div></div></div>
</div>
</div>
</div>
</div>



<p>やることは簡単</p>



<p>&#8220;ファイルを選択&#8221;から対象のexeファイルを選択して&#8221;Process&#8221;をクリックするだけ</p>



<p>中央の枠にログが表示されて最終的に{exeファイル名}_extracted.zipがダウンロードされるので解凍すればあとは同じ</p>



<h2 class="wp-block-heading"><span id="toc5">.pycファイルを.pyファルにする</span></h2>



<p>次は<span class="marker-under">pycdc</span>を使うので再びGithubへ</p>




<a rel="noopener noreferrer" target="_blank" href="https://github.com/extremecoders-re/decompyle-builds" title="GitHub - extremecoders-re/decompyle-builds: Precompiled Decompyle++ (pycdc) binaries for Windows &amp; Linux" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://opengraph.githubassets.com/f812c6885e0ef27182e02310a960546ef8f995ee95576b01aea4ffbc8c1a01ec/extremecoders-re/decompyle-builds" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="198" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub - extremecoders-re/decompyle-builds: Precompiled Decompyle++ (pycdc) binaries for Windows & Linux</div><div class="blogcard-snippet external-blogcard-snippet">Precompiled Decompyle++ (pycdc...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/extremecoders-re/decompyle-builds" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1.png"><img decoding="async" width="1024" height="555" data-id="1596" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-1024x555.png" alt="" class="wp-image-1596" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h09_28-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>pycdcように見えてじゃないけどここが正解</p>



<p>pyinstxtractor-ngの時と同じく<a rel="noreferrer noopener" target="_blank" href="https://github.com/extremecoders-re/decompyle-builds/releases" data-type="link" data-id="https://github.com/extremecoders-re/decompyle-builds/releases">releases</a>のリンクへ</p>



<figure class="wp-block-image size-large"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1.png"><img decoding="async" width="1024" height="555" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-1024x555.png" alt="" class="wp-image-1616" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-25_22h07_38-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>「<span class="bold-red">pycdc.exe</span>」をダウンロードしてくる</p>



<h3 class="wp-block-heading"><span id="toc6">pycdcの使い方</span></h3>



<p>pyinstxtractor-ng.exeと違ってドラック＆ドロップではできない</p>



<p>コマンドプロンプトとかで対象のpycファイルを引数にしてログ出力として実行する</p>



<figure class="wp-block-image size-full"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/pycdc.gif"><img decoding="async" width="962" height="542" src="https://javeo.jp/wp-content/uploads/2023/11/pycdc.gif" alt="" class="wp-image-1617"/></a></figure>



<div class="hcb_wrap"><pre class="prism undefined-numbers lang-powerwhell" data-lang="PowerShell"><code>cd {ファイルがあるフォルダ}
pycdc.exe {pycファイル}&gt;{出力するpyファイル}
※2行目の各ファイルをフォルダ込みのフルパスで書くなら1行目の&quot;cd {ファイルがあるフォルダ}&quot;は不要</code></pre></div>



<p>この出力したpyファイルがexeから戻した目的ファイル！</p>



<h2 class="wp-block-heading"><span id="toc7">もとのpyファイルとどれくらい違うのか</span></h2>



<p>細かいところは他にもあるけど影響大きそうなものはこんな感じ</p>



<h3 class="wp-block-heading"><span id="toc8">&#8220;#WARNING: Decompyle incomplete&#8221;以下の欠損</span></h3>



<p>これが一番ダメージデカい・・</p>



<p>この文字があると同一def内の以降のソースが消し飛ぶ</p>



<p>diffを取るとこんな感じ</p>



<figure class="wp-block-image size-large"><a rel="follow noopener noreferrer" target="_blank" href="https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25.png"><img decoding="async" width="1024" height="500" src="https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-1024x500.png" alt="" class="wp-image-1619" srcset="https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-1024x500.png 1024w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-300x147.png 300w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-150x73.png 150w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-768x375.png 768w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25-1536x750.png 1536w, https://javeo.jp/wp-content/uploads/2023/11/2023-11-26_09h04_25.png 1800w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading"><span id="toc9">コメントがなくなる</span></h3>



<p>なくなるコメントは#で始まる一行コメントのみ</p>



<p>「&#8221;&#8217;」か「&#8221;&#8221;&#8221;」で囲んだ複数行コメントは残ってる</p>



<h3 class="wp-block-heading"><span id="toc10">引数が「**kwargs」になりがち</span></h3>



<p>（これは動きそうなので見逃せそう）</p>



<div class="hcb_wrap"><pre class="prism undefined-numbers lang-python" data-lang="Python"><code># ↓これが
f = csv.DictReader(csv_file, delimiter=&#39;,&#39;, doublequote=True,
                               lineterminator=&#39;\r\n&#39;, quotechar=&#39;&quot;&#39;, skipinitialspace=True)
# ↓こうなる
f = csv.DictReader(csv_file, &#39;,&#39;, True, &#39;\r\n&#39;, &#39;&quot;&#39;, True, **(&#39;delimiter&#39;, &#39;doublequote&#39;, &#39;lineterminator&#39;, &#39;quotechar&#39;, &#39;skipinitialspace&#39;))</code></pre></div>



<h3 class="wp-block-heading"><span id="toc11">引数の解釈がおかしい時がある</span></h3>



<p>そもそも型指定しなければ良いのかな・・？</p>



<div class="hcb_wrap"><pre class="prism undefined-numbers lang-python" data-lang="Python"><code># ↓これが
def findItemsAdvancedAPI(self, SellerId: str, page_no: int, ItemIdList: list):
# ↓こうなる
def findItemsAdvancedAPI(self = None, SellerId = None, page_no = None, ItemIdList = (&#39;SellerId&#39;, str, &#39;page_no&#39;, int, &#39;ItemIdList&#39;, list)):</code></pre></div>



<h3 class="wp-block-heading"><span id="toc12">ネストされたifなどが（間違って？）まとめられる</span></h3>



<p>元のソースが微妙な気もするけど・・</p>



<div class="hcb_wrap"><pre class="prism undefined-numbers lang-plain"><code># ↓これが
if res[&#39;findItemsAdvancedResponse&#39;][&#39;searchResult&#39;][&#39;@count&#39;] == &#39;1&#39;:
    item = items
    if item[&#39;globalId&#39;] == &#39;EBAY-US&#39;:
        if str(item[&#39;itemId&#39;]) not in ItemIdList:
            if self.GetItemDetail(str(item)) == 2:
                return 2
else:
    for item in items:
        if item[&#39;globalId&#39;] == &#39;EBAY-US&#39;:
            if str(item[&#39;itemId&#39;]) not in ItemIdList:
                if self.GetItemDetail(str(item[&#39;itemId&#39;])) == 2:
                    return 2
return 1 if totalPages &gt; page_no else 0
# ↓こうなる
if res[&#39;findItemsAdvancedResponse&#39;][&#39;searchResult&#39;][&#39;@count&#39;] == &#39;1&#39;:
    item = items
    if item[&#39;globalId&#39;] == &#39;EBAY-US&#39; and str(item[&#39;itemId&#39;]) not in ItemIdList and self.GetItemDetail(str(item)) == 2:
        return 2
for item in items:
    if item[&#39;globalId&#39;] == &#39;EBAY-US&#39; and str(item[&#39;itemId&#39;]) not in ItemIdList and self.GetItemDetail(str(item[&#39;itemId&#39;])) == 2:
        return 2
    if totalPages &gt; page_no:
        return 1
    return None</code></pre></div>



<h2 class="wp-block-heading"><span id="toc13">あとがき</span></h2>



<p>何もないよりは絶対に良いけどこれで復元と言うには少し微妙・・・</p>



<p>人様が作ったexeをデコンパイルして改修することは難しいってことですね</p>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/decompile-pyinstaller/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
