ARM彙編

objc_msgSend彙編原始碼分析

引言 Objective-C是通過訊息機制呼叫方法的,編譯器會把所有訊息傳送轉為objc_msgSend方法呼叫。說到objc_msgSend的彙編實現,大多數人會覺的是因為 效能高才用匯編實現 ,幾乎沒

編譯型語言是如何使計算機工作的

不同的編譯型語言,由編寫到執行的過程有些許不同,但大致上是類似的。下面以 c 語言為例,討論編譯型語言使計算工作的過程。 第一步是預處理,這一過程由前處理器完成。不同語言所用的前處理器是不同的,C語言的前處理

死磕Synchronized底層實現--偏向鎖

本文為synchronized系列第二篇。主要內容為分析偏向鎖的實現。 偏向鎖的誕生背景和基本原理在上文中已經講過了,強烈建議在有看過上篇 文章 的基礎下閱讀本文。 更多文章見個人部落格:

Go 編譯器 nil 指標檢查

簡介 我在思考編譯器是如何保護我們寫的程式碼。無效的記憶體訪問檢查是編譯器新增到程式碼中的一種安全檢查。我們可能會認為這種“額外的程式碼”會損耗程式的效能,甚至可能需要數十億的迭代操作。但是,這些檢查可以防

從solc編譯過程來理解solidity合約結構

現在以一個最簡單的程式碼來開始我們的逆向旅程,為了方便學習,所有的程式碼編譯和分析都在 http://remix.ethereum.org/# 上進行.預設IDE 選項是關閉程式碼優化(Enable

最新全國各地大資料產業政策彙編(附下載)

【前言】近年來,伴隨著資訊科技的高速發展,資料成為促進現代經濟社會發展的關鍵因素,大資料產業鏈日趨完善,市場前景十分廣闊。鑑於此,我國開始加快實施大資料國家戰略,加快資料開放共享步伐,制定有力的資料安全保障體系

Pwnable.kr學習——bof

雖然是一道比較簡單的棧溢位題目,但是第一次實際接觸棧溢位也花了不少力氣,理清不少問題。 bof 這道題一樣提供了原始碼 #include <stdio.h> #include <

順序、條件、迴圈語句的底層解釋

我們都清楚,絕大多數編譯器都把組合語言作為中間語言,把組合語言程式變成可執行的二進位制檔案早就解決了,所以現在的高階語言基本上只需要把自己翻譯成組合語言就可以了。 彙編指令總共只有那麼多,大多數指令都是

彙編筆記

能夠被計算機直接識別的語言稱之為機器語言,比如: 00100000 這種的,組合語言是需要通過編譯器轉變為機器語言的。 計算機構成:輸入/輸出裝置、儲存器、運算器、控制器 1.基礎單位資訊 b

Go 語言中的遞迴和尾呼叫操作

曾幾何時,我看過一段關於 Go 遞迴函式的簡單例子,作者用了極快的速度簡單的陳述了 Go 這門語言中並沒有優化遞迴這一操作,即使是在尾呼叫(tail calls)非常明顯的時間。我當時並不理解什麼是尾呼叫(ta

逆向 Mac 應用 Bartender

本文內容 僅作為學習交流 ,希望大家多多支援正版軟體。 Emmmmm... 其實最初是準備寫一篇關於 iOS 應用的逆向筆記的,不過一直沒找到合適的目標 App 以及難度適宜的功能點來作為寫作素材...

JVM彙編總結

無關性的基石 計算機只認識0和1,所以我們寫的程式需要被編譯器翻譯成0和1才能被計算機執行。10多年的時間過去了,今天的計算機仍然只識別0和1,但由於最近10年內虛擬機器及建立在虛擬機器之上的大量程式語言如

1747322713.0076