<?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>Bug Archives - 101Wired</title>
	<atom:link href="https://101wired.com/tag/bug/feed/" rel="self" type="application/rss+xml" />
	<link>https://101wired.com/tag/bug/</link>
	<description>Hi Peeps</description>
	<lastBuildDate>Wed, 24 Mar 2021 23:01:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://101wired.com/wp-content/uploads/2020/05/cropped-101Wired_Square-32x32.png</url>
	<title>Bug Archives - 101Wired</title>
	<link>https://101wired.com/tag/bug/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Seorang Fan GTA Berhasil Memperbaiki Bug di GTA Online</title>
		<link>https://101wired.com/2021/03/seorang-fan-gta-berhasil-memperbaiki-bug-di-gta-online/</link>
					<comments>https://101wired.com/2021/03/seorang-fan-gta-berhasil-memperbaiki-bug-di-gta-online/#comments</comments>
		
		<dc:creator><![CDATA[Fairuz Insani]]></dc:creator>
		<pubDate>Wed, 24 Mar 2021 23:01:04 +0000</pubDate>
				<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Fan]]></category>
		<category><![CDATA[Grand Theft Auto Online]]></category>
		<category><![CDATA[GTA Online]]></category>
		<category><![CDATA[Rockstar]]></category>
		<guid isPermaLink="false">https://101wired.com/?p=3803</guid>

					<description><![CDATA[<p>Dilansir dari PC Gamer, Rockstar akan mengimplementasikan perbaikan yang dibuat oleh seorang penggemar, setelah penggemar tersebut menemukan bug dalam game GTA Online dan mencoba untuk memperbaikinya, dan Rockstar akan mengimplementasikan hal tersebut pada update terbaru mereka. Seorang pengguna GitHub tostercx atau dikenal dengan t0st mempublikasikan sebuah postingan blog mengenai bug yang terdapat dalam GTA Online, [&#8230;]</p>
<p>The post <a href="https://101wired.com/2021/03/seorang-fan-gta-berhasil-memperbaiki-bug-di-gta-online/">Seorang Fan GTA Berhasil Memperbaiki Bug di GTA Online</a> appeared first on <a href="https://101wired.com">101Wired</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-justify">Dilansir dari PC Gamer, <a href="https://www.rockstargames.com/" target="_blank" rel="noreferrer noopener">Rockstar</a> akan mengimplementasikan perbaikan yang dibuat oleh seorang penggemar, setelah penggemar tersebut menemukan <em>bug</em> dalam <em>game</em> <em><a href="https://www.rockstargames.com/GTAOnline/restricted-content/agegate/form?redirect=https%3A%2F%2Fwww.rockstargames.com%2FGTAOnline%2F&amp;options=&amp;locale=en_us" target="_blank" rel="noreferrer noopener">GTA Online</a></em> dan mencoba untuk memperbaikinya, dan Rockstar akan mengimplementasikan hal tersebut pada <em>update</em> terbaru mereka.</p>



<p class="has-text-align-justify">Seorang pengguna GitHub tostercx atau dikenal dengan t0st mempublikasikan sebuah postingan <em>blog</em> mengenai <em>bug</em> yang terdapat dalam GTA<em> Online</em>, dimana ia menjelaskan secara detail bagaimana caranya untuk mempersingkat waktu <em>loading </em>dari enam menit, menjadi kurang dari dua menit.&nbsp;</p>



<p class="has-text-align-justify">Ketika postingan itu pertama kali dipublikasikan, Rockstar menyatakan bahwa perbaikan tersebut belum teruji, dan belum bisa digunakan untuk umum. Setelah melakukan serangkaian pemeriksaan, Rockstar memberitahu kepada PC Gamer bahwa temuan tersebut akurat dan akan diimplementasikan pada <em>update </em>selanjutnya.</p>



<p>Baca juga: <a href="https://101wired.com/2021/03/22/wajah-baru-dari-game-klasik-shin-megami-tensei-3-nocturne/" target="_blank" rel="noreferrer noopener">Wajah Baru dari Game Klasik Shin Megami Tensei 3: Nocturne</a></p>



<p class="has-text-align-justify"><em>Setelah penyelidikan menyeluruh, kami dapat mengonfirmasi bahwa pemain t0st memang mengungkapkan aspek kode game yang terkait dengan waktu muat untuk GTA Online versi PC yang dapat ditingkatkan. Hasil investigasi ini, kami telah membuat beberapa perubahan yang akan diterapkan dalam pembaruan yang akan datang.</em></p>



<p class="has-text-align-justify">Sebenarnya apa yang ditemukan oleh t0st? Dalam tulisannya yang dimuat di nee.lv, t0st mengeluhkan lambatnya <em>loading</em> pada GTA<em> Online</em> yang sudah ada dari 7 tahun yang lalu. Kemudian ia menjabarkan bug-bug yang ada pada game tersebut dan berikut rincian dari penemuan tersebut</p>



<ol class="wp-block-list"><li><em>Benchmark</em>&nbsp;</li></ol>



<p><strong><em>Story mode load time:&nbsp; ~1m 10s</em></strong></p>



<p><strong><em>Online mode load time: ~6m flat</em></strong></p>



<p><strong><em>Startup menu disabled, time from R* logo until in-game (social club login time isn&#8217;t counted).</em></strong></p>



<p><strong><em>Old but decent CPU: &nbsp; AMD FX-8350</em></strong></p>



<p><strong><em>Cheap-o SSD:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KINGSTON SA400S37120G</em></strong></p>



<p><strong><em>We have to have RAM:&nbsp; 2x Kingston 8192 MB (DDR3-1337) 99U5471</em></strong></p>



<p><strong><em>Good-ish GPU: &nbsp; &nbsp; &nbsp; &nbsp; NVIDIA GeForce GTX 1070</em></strong></p>



<p class="has-text-align-justify">Data di atas merupakan spesifikasi PC milik t0st, dalam tulisan yang dimuat di situs nee tersebut, ia mengeluhkan lamanya memuat ulang mode daring di <em>GTA Online</em> yang memakan waktu enam kali lebih lama. t0st juga membagikan survey mengenai waktu <em>loading </em>pada <em>GTA Online</em> di sebuah forum dan hasilnya, dari 271 responden 81 persen pengguna merasakan waktu <em>loading </em>game tersebut selama 3-6 menit</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/Tlvz3Ea8p_SLZGWIzAALoZcA_A0sS4LJnD4-fP5EJytiC62Cku7KDm3VWetVUMec6WhjHRKs51TLP36t0XBWmO0Y2DXkVjfFCdY8v2xl58NTM1RfbKBhG3a48_8InznTn0HLfV8A" alt=""/><figcaption>credit: nee.lv</figcaption></figure></div>



<ol class="wp-block-list" start="2"><li>Pengukuran yang akurat</li></ol>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh5.googleusercontent.com/ZmB-4BEsyThVU1KiKq-4N2_IzTcNje66gZH3LYWAdDx2JUNTTyAZlkw7-QeIqq59s2PKK-fA5C3mAtGEXjcTqNJ81Hm5_BtjfSVUxLYlL5Jb8OIWtjGMpxpzV-lFLf5IB7TjtTQT" alt=""/><figcaption>credit: nee.lv</figcaption></figure></div>



<p class="has-text-align-justify">Pada bagian ini, t0st mengeluhkan tidak adanya data penggunaan <em>disk usage</em>, data <em>Ethernet</em> yang langsung anjlok begitu masuk mode daring, dan penggunaan memori yang cenderung <em>flat</em> pada mode tersebut, sedangkan CPU dipaksa bekerja sangat keras ketika berada pada mode daring.&nbsp;</p>



<ol class="wp-block-list" start="3"><li><em>Profiling</em>&nbsp;</li></ol>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh5.googleusercontent.com/jCqTDEm_ShIUMdfqoa1ZhZz4npUhc4cXZIr0dek5zWpgHjRfC1oWDQzH8HplSPIuGmTr0Zr-6sp18Ia23aumzJqPsxiVSDPoxnANRy3otUuPu_RlglLXrfkA6fUYhf4hrb8lqVvi" alt=""/><figcaption>credit: nee.lv</figcaption></figure></div>



<p class="has-text-align-justify">Pada bagian ini, t0st melakukan <em>profiling </em>sederhana dari GTA menggunakan aplikasi <em>prototype </em>bernama <em>Luke Stackwalker.&nbsp;</em></p>



<ol class="wp-block-list" start="4"><li>Permasalahan bagian pertama</li></ol>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/2MlTY2k-BJETxsMQFtqMFvAs1oSzH1ch9lGJoYppX8A2-kLrMmOjg874_KWa08HJLiZgiSqnv9sxBNJipNeKaTEda_cDitwiwycC6GNF-oVRMmXPgT8KYHkrc-dOYTULw94rtyuY" alt=""/><figcaption>credit: nee.lv</figcaption></figure>



<p class="has-text-align-justify">Pada bagian ini t0st menjabarkan lebih rinci dari bagian sebelumnya, dimana ia menemukan ada kejanggalan berupa kode <em>strlen</em>, dan setelah diuraikan ternyata ada kode JSON sebesar 10 <em>megabytes </em>atau setara dengan 63 ribu data entry</p>



<p><strong>&#8230;,</strong></p>



<p><strong>{</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;key&#8221;: &#8220;WP_WCT_TINT_21_t2_v9_n2&#8221;,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;price&#8221;: 45000,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;statName&#8221;: &#8220;CHAR_KIT_FM_PURCHASE20&#8221;,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;storageType&#8221;: &#8220;BITFIELD&#8221;,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;bitShift&#8221;: 7,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;bitSize&#8221;: 1,</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&#8220;category&#8221;: [&#8220;CATEGORY_WEAPON_MOD&#8221;]</strong></p>



<p><strong>},</strong></p>



<p><strong>…</strong></p>



<p class="has-text-align-justify">Data ini merupakan “<em>net shop catalog</em>” yang mana menurut t0st merupakan bagian dari <em>items </em>maupun <em>upgrade </em>yang bisa dibeli di GTA<em> Online</em>&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh4.googleusercontent.com/b_dhgmyofzCP5K92TMzJkbZp5IwPCTByVOHVBuQvnrux3CaW-Z9H4f7C8kotNZf6H_9dOBsT1c07UbzvzcJZTMnH1IrCFXFaWRVVEs8MP9ZGmnb8SkSUFNi4YlzHYWLVamagzLtZ" alt=""/><figcaption>credit: nee.lv</figcaption></figure></div>



<p class="has-text-align-justify">t0st mengakui bahwa kode <em>sscanf</em> merupakan bagian dari <em>strlen</em>, ia juga tidak menyalahkan pihak pengembang dan berasumsi bahwa kode tersebut hanya memindai <em>byte </em>per <em>byte </em>hingga menjadi NULL.</p>



<ol class="wp-block-list" start="5"><li>Permasalahan bagian kedua</li></ol>



<p><strong>struct {</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;uint64_t *hash;</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;item_t &nbsp; *item;</strong></p>



<p><strong>} entry;</strong></p>



<p class="has-text-align-justify">Pada bagian ini, t0st mempermasalahkan kode yang terlihat di atas setelah melakukan penguraian, dan dengan menggunakan <em>hashmap</em>, t0st memperinci masalah yang ada pada kode (gambar dibawah) dan mengeluhkan bagaimana Rockstar (pengembang) tidak memeriksa list tersebut.&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/lwGzwxGxYMU_ZLCmb8zd_dIy7dHUtAy6x3tE8WMrlJRqGCItF2C3wgrRWvuRleWjJSUMyUEgE1nOfWgOiP3RjA235GIe9tV3Nw5wM6sB6TZeAcaIVqWlJRrJmT903xIT81hUlGt-" alt=""/><figcaption>credit: nee.lv</figcaption></figure></div>



<ol class="wp-block-list" start="6"><li>PoC</li></ol>



<p class="has-text-align-justify">Pada bagian ini, t0st mulai melakukan perbaikan, ia menjelaskan bagaimana caranya untuk membenarkan bug yang ada pada GTA<em> Online.</em></p>



<p><em>The plan? Write a .dll, inject it in GTA, hook some functions, ???, profit.</em></p>



<p><em>The JSON problem is hairy, I can’t realistically replace their parser. Replacing sscanf with one that doesn’t depend on strlen would be more realistic. But there’s an even easier way.</em></p>



<p><em>hook strlen</em></p>



<p><em>wait for a long string</em></p>



<p><em>“cache” the start and length of it</em></p>



<p><em>if it’s called again within the string’s range, return cached value</em></p>



<p>Berikut adalah tampilan kode dari perbaikan yang dilakukan oleh t0st</p>



<p><strong>size_t strlen_cacher(char* str)</strong></p>



<p><strong>{</strong></p>



<p><strong>&nbsp;&nbsp;static char* start;</strong></p>



<p><strong>&nbsp;&nbsp;static char* end;</strong></p>



<p><strong>&nbsp;&nbsp;size_t len;</strong></p>



<p><strong>&nbsp;&nbsp;const size_t cap = 20000;</strong></p>



<p><strong>&nbsp;&nbsp;// if we have a &#8220;cached&#8221; string and current pointer is within it</strong></p>



<p><strong>&nbsp;&nbsp;if (start &amp;&amp; str &gt;= start &amp;&amp; str &lt;= end) {</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;// calculate the new strlen</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;len = end &#8211; str;</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;// if we&#8217;re near the end, unload self</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;// we don&#8217;t want to mess something else up</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;if (len &lt; cap / 2)</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MH_DisableHook((LPVOID)strlen_addr);</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;// super-fast return!</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;return len;</strong></p>



<p><strong>&nbsp;&nbsp;}</strong></p>



<p><strong>&nbsp;&nbsp;// count the actual length</strong></p>



<p><strong>&nbsp;&nbsp;// we need at least one measurement of the large JSON</strong></p>



<p><strong>&nbsp;&nbsp;// or normal strlen for other strings</strong></p>



<p><strong>&nbsp;&nbsp;len = builtin_strlen(str);</strong></p>



<p><strong>&nbsp;&nbsp;// if it was the really long string</strong></p>



<p><strong>&nbsp;&nbsp;// save it&#8217;s start and end addresses</strong></p>



<p><strong>&nbsp;&nbsp;if (len &gt; cap) {</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;start = str;</strong></p>



<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;end = str + len;</strong></p>



<p><strong>&nbsp;&nbsp;}</strong></p>



<p><strong>&nbsp;&nbsp;// slow, boring return</strong></p>



<p><strong>&nbsp;&nbsp;return len;</strong></p>



<p><strong>}</strong></p>



<p class="has-text-align-justify">Hasilnya? Setelah melakukan percobaan tersebut, memang benar waktu muat ulang pada mode daring dari GTA menjadi lebih singkat sebesar 69.4%, dan pihak Rockstar pun telah memberikan konfirmasi mengenai hal tersebut dan memberikan imbalan kepada t0st sebesar 10 Ribu USD atau sebesar 144 juta Rupiah.&nbsp;</p>
<p>The post <a href="https://101wired.com/2021/03/seorang-fan-gta-berhasil-memperbaiki-bug-di-gta-online/">Seorang Fan GTA Berhasil Memperbaiki Bug di GTA Online</a> appeared first on <a href="https://101wired.com">101Wired</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://101wired.com/2021/03/seorang-fan-gta-berhasil-memperbaiki-bug-di-gta-online/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
