<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on DeFi + TradFi = ♡</title><link>https://www.ryzhak.com/posts/</link><description>Recent content in Posts on DeFi + TradFi = ♡</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 17 Dec 2025 08:36:59 +0000</lastBuildDate><atom:link href="https://www.ryzhak.com/posts/feed.xml" rel="self" type="application/rss+xml"/><item><title>Comprehensive Smart Contract Audit with Certora Formal Verification</title><link>https://www.ryzhak.com/comprehensive-smart-contract-audit-with-certora-formal-verification/</link><pubDate>Wed, 17 Dec 2025 08:36:59 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=907</guid><description>Hey guys, in this blog post, we&amp;rsquo;re going to perform a security assessment of a smart contract and, with the help of Certora&amp;rsquo;s formal verification tool, try to prove there are no &amp;ldquo;High&amp;rdquo; severity issues residing in the source code.</description></item><item><title>Replaying Bugs With Certora: Sorra Finance</title><link>https://www.ryzhak.com/replaying-bugs-with-certora-sorra-finance/</link><pubDate>Fri, 23 May 2025 09:38:30 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=833</guid><description>In this blog post we&amp;rsquo;re going to deep dive into the Sorra Finance hack, find the root cause of the bug and create a &lt;a href="https://docs.certora.com/"&gt;certora&lt;/a&gt; rule which could&amp;rsquo;ve prevented the exploit.</description></item><item><title>Research: ERC20 Self Transfer</title><link>https://www.ryzhak.com/research-erc20-self-transfer/</link><pubDate>Tue, 13 May 2025 08:57:43 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=795</guid><description>&lt;h4 id="overview"&gt;Overview&lt;/h4&gt;
&lt;p&gt;In this blog post we&amp;rsquo;re going to:{{ double-space-with-newline }}1. Understand how ERC20 self transfer vulnerability works in smart contracts{{ double-space-with-newline }}2. Create a &lt;a href="https://semgrep.dev/"&gt;semgrep&lt;/a&gt; rule for finding such contracts{{ double-space-with-newline }}3. Scan &lt;a href="https://github.com/tintinweb/smart-contract-sanctuary"&gt;https://github.com/tintinweb/smart-contract-sanctuary&lt;/a&gt; to better understand how many contracts exist with such bug&lt;/p&gt;</description></item><item><title>How to create your own Uniswap</title><link>https://www.ryzhak.com/how-to-create-your-own-uniswap/</link><pubDate>Fri, 20 May 2022 16:10:00 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=779</guid><description>In this tutorial we’re going to build a very basic decentralized exchange (DEX) like &lt;a href="https://uniswap.org/"&gt;Uniswap&lt;/a&gt; or &lt;a href="https://pancakeswap.finance/"&gt;PancakeSwap&lt;/a&gt;.</description></item><item><title>How to create your own ERC721 NFT collection and publish it on Opensea</title><link>https://www.ryzhak.com/how-to-create-your-own-erc721-nft-collection-and-publish-it-on-opensea/</link><pubDate>Sat, 09 Apr 2022 15:58:00 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=767</guid><description>In this tutorial we’re going to create our own ERC721 NFT collection and publish it on the &lt;a href="https://opensea.io/"&gt;Opensea marketplace&lt;/a&gt;.</description></item><item><title>HTB Validation writeup</title><link>https://www.ryzhak.com/htb-validation-writeup/</link><pubDate>Thu, 23 Sep 2021 22:02:33 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=715</guid><description>In this tutorial we will get root access for the &lt;code&gt;Validation&lt;/code&gt; machine from &lt;code&gt;Hack The Box&lt;/code&gt;.</description></item><item><title>Web penetration testing</title><link>https://www.ryzhak.com/web-penetration-testing/</link><pubDate>Tue, 21 Sep 2021 15:00:05 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=694</guid><description>In this tutorial we’re going to define base steps for web penetration testing and find vulnerabilities in &lt;a href="https://github.com/digininja/DVWA"&gt;DVWA&lt;/a&gt;.</description></item><item><title>Network penetration testing</title><link>https://www.ryzhak.com/network-penetration-testing/</link><pubDate>Sat, 11 Sep 2021 10:04:28 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=682</guid><description>In this tutorial we’re going to identify running services on the target server and try to exploit them.</description></item><item><title>Passive information gathering</title><link>https://www.ryzhak.com/passive-information-gathering/</link><pubDate>Tue, 07 Sep 2021 22:55:09 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=679</guid><description>The 1st step of any penetration test is gathering information about the target company. In this tutorial we will go through all the steps required for passive information gathering.</description></item><item><title>Android reverse engineering</title><link>https://www.ryzhak.com/android-reverse-engineering/</link><pubDate>Wed, 01 Sep 2021 00:12:22 +0000</pubDate><guid isPermaLink="false">https://www.ryzhak.com/?p=589</guid><description>Hello everybody. In this tutorial we’re going to reverse engineer a vulnerable android app, find all vulnerabilities and create a report.</description></item><item><title>Your first Ethereum smart contract</title><link>https://www.ryzhak.com/practical-guide-to-ethereum-part-17/</link><pubDate>Sat, 06 Jan 2018 23:01:48 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=415</guid><description>In this tutorial we are going to write a smart contact in Solidity language that can prove file ownership.</description></item><item><title>Comprehensive guide to Redis. Part 6.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-6/</link><pubDate>Tue, 15 Dec 2015 21:48:55 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=336</guid><description>In this tutorial, we are going to vet some common pitfalls when using Redis.</description></item><item><title>Converting pdf file to html canvas with text selection using PDF.js</title><link>https://www.ryzhak.com/converting-pdf-file-to-html-canvas-with-text-selection-using-pdf-js/</link><pubDate>Mon, 07 Dec 2015 18:10:21 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=332</guid><description>In this tutorial, we are going to display a pdf file inside an html canvas object with the ability to select the text in the page.</description></item><item><title>Comprehensive guide to Redis. Part 5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-5/</link><pubDate>Sun, 29 Nov 2015 19:31:21 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=322</guid><description>In this tutorial, we are going to try out a Redis client library for PHP. Unlike the Node.js client we used in the previous tutorials, the chosen PHP client library is synchronous and do not require a callback function.</description></item><item><title>Comprehensive guide to Redis. Part 4.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-4/</link><pubDate>Thu, 19 Nov 2015 13:32:51 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=296</guid><description>In this tutorial, we are going to overview other Redis commands and features.</description></item><item><title>Comprehensive guide to Redis. Part 3.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-3/</link><pubDate>Sun, 08 Nov 2015 21:42:09 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=291</guid><description>A time series is an ordered sequence of values that are made over a time interval. You can use time series in statistics, communications, and social networks. I this tutorial we are going to create a simple stock time series Node.js library using Redis Strings. This library records events per second, minute, hour, and day.</description></item><item><title>Comprehensive guide to Redis. Part 2.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-2/</link><pubDate>Mon, 02 Nov 2015 12:07:48 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=276</guid><description>In this tutorial, we are going to discover a few more data types like Set, Sorted Set, Bitmap, and HyperLogLog.</description></item><item><title>Comprehensive guide to Redis. Part 1.</title><link>https://www.ryzhak.com/comprehensive-guide-to-redis-part-1/</link><pubDate>Sat, 24 Oct 2015 09:48:40 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=231</guid><description>Redis (REmote DIctionary Server) is an advanced key-value data store. Read and write operations in Redis are very fast because it saves all data in the memory. Redis can also save data on the hard drive. The official Redis documentation can be found at &lt;a href="http://redis.io"&gt;http://redis.io&lt;/a&gt;. Redis is an open sources project used by many companies including Instagram and Twitter. In this tutorial, we will install Redis, install Node.js, and try out several data types.</description></item><item><title>Comprehensive guide to WebRTC. Part 5/5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-55/</link><pubDate>Fri, 09 Oct 2015 14:09:53 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=220</guid><description>In this tutorial, we are going to focus on the transferring arbitrary data using WebRTC Data Channel Protocol.</description></item><item><title>Comprehensive guide to WebRTC. Part 4/5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-4/</link><pubDate>Thu, 01 Oct 2015 09:11:56 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=206</guid><description>In this part we are going to create a client application which connects two users using signalling server we created in the &lt;a href="https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-3/"&gt;previous part&lt;/a&gt;.</description></item><item><title>Comprehensive guide to WebRTC. Part 3/5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-3/</link><pubDate>Fri, 25 Sep 2015 12:06:47 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=196</guid><description>In this tutorial we are going to create a basic signalling server using &lt;code&gt;javascript&lt;/code&gt; and &lt;code&gt;nodejs&lt;/code&gt;. It will be able to connect two users together.</description></item><item><title>Comprehensive guide to WebRTC. Part 2/5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-2/</link><pubDate>Fri, 18 Sep 2015 10:46:15 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=187</guid><description>The first thing of any WebRTC app is creating an &lt;code&gt;RTCPeerConnection&lt;/code&gt;. Creating an &lt;code&gt;RTCPeerConnection&lt;/code&gt; will help us to understand the inner workings of peer connections inside the browser.</description></item><item><title>Comprehensive guide to WebRTC. Part 1/5.</title><link>https://www.ryzhak.com/comprehensive-guide-to-webrtc-part-1/</link><pubDate>Fri, 11 Sep 2015 10:41:45 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=166</guid><description>WebRTC (Web Real-Time Communication) is your browser built-in technology with the aim to simplify developing applications using audio and video streams. You can easily build your own Skype in the browser using WebRTC. So the simple idea is that you open up a website and connect with another user immediately. WebRTC API includes camera and microphone capture, video and audio encoding and decoding, transportation layers, and session management.</description></item><item><title>Getting started with Kurento WebRTC</title><link>https://www.ryzhak.com/getting-started-with-kurento-webrtc/</link><pubDate>Tue, 01 Sep 2015 15:20:43 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=144</guid><description>&lt;p&gt;Today we are going to try kurento media server and create a simple webrtc application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.kurento.org/"&gt;Kurento&lt;/a&gt; is an open-source media server with WebRTC support. So if your customer wants to integrate video/audio chat on his website Kurento may solve this problem.&lt;/p&gt;</description></item><item><title>Creating HTML parser using golang</title><link>https://www.ryzhak.com/creating-html-parser-using-golang/</link><pubDate>Wed, 05 Aug 2015 19:35:06 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=135</guid><description>This time we are going to create a HTML parser for &lt;a href="http://www.flashscore.com"&gt;http://www.flashscore.com&lt;/a&gt;/ .</description></item><item><title>Getting started with Arduino</title><link>https://www.ryzhak.com/getting-started-with-arduino/</link><pubDate>Sat, 13 Jun 2015 11:56:18 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=118</guid><description>In this tutorial we are going to create our first arduino project. It will be a simple blinking light-emitting diode.</description></item><item><title>Changing the expiration date of the 1C Bitrix CMS</title><link>https://www.ryzhak.com/changing-the-expiration-date-of-the-1c-bitrix-cms/</link><pubDate>Thu, 04 Jun 2015 12:16:37 +0000</pubDate><guid isPermaLink="false">http://www.ryzhak.com/?p=104</guid><description>Sometimes it is necessary to prolongate standard Bitrix test period because when developing a large project 30 days are not enough.</description></item></channel></rss>