原创 boot bios傻傻分不清

bios是加電完成後執行的指令,boot是BIOS執行完成後的指令(算是操作系統內部指令) 即BIOS 加電到 選擇系統,  boot是選擇系統之後(裝了多個系統的師傅應該瞭解,開機到一半有個選擇操作系統) 想去了解系統加電過程,於是安裝

原创 隨筆,代碼隱藏基礎

滴水逆向,2015-3-6隨筆 將代碼段數據放置在全局變量區,使用指針去調用 直接上手擼代碼,訪問出錯 是DEP保護沒關(保證數據區代碼不可執行) 那就關掉吧,屬性->鏈接器->高級->數據執行保護 選否   此時     int (*p

原创 c++ string 源碼分析

菜雞的我當醬油去了ctf,re的第一題就把我整懵了 ida警告 Unexpected entries in the PLT stub. The file might have been modified after linking. 大致

原创 又是菜雞的記錄日誌,局部變量大小,坑人的編譯器

其實主要是想說明編譯器太坑了(以下都是在32位環境下) 剛開始使用的是vs2010,一個int a ,緩衝區都要增大0xC 我人都傻了,兩個int 增大0x18, char c[12] 增大0x20 一個double 直接佔用0x10 ,

原创 逆向基礎,函數多級調用

看到滴水逆向的時候C語言基礎 於是寫了一個 int Plus3(int a, int b, int c, int d ,int e) {      return Plus2(a,Plus1(b,c),Plus1(d,e)); } 這樣的函

原创 puuctf-re-不一樣的flag

直接上ida 函數都正常,沒加殼 找到main函數直接f5 看了一下代碼邏輯 拷貝字符串*11110100001010000101111#到esp+17h 定義v4 =[esp+30h] ; v5 = [esp+34h] v6爲用戶輸入

原创 編譯器將除變成乘法原理

除法運算運算效率在四種基本運算中最慢,是乘法的20倍左右 所以在被除數爲固定值時(重要),編譯器會把除法優化乘法。   設代碼 a/b = c                          b是常量 設 b*k = 2^n     

原创 逆矩爲什麼能求線性方程(多元一次)的解

單位矩陣//只有主對角線爲1的矩陣 1       0       0 0       1       0 0       0       1   特點:任何矩陣乘以標準矩陣還是本身   首先利用線性方程寫出 矩陣A(未知數係數)    

原创 數據包發送全過程

都在圖裏

原创 紅黑樹剖析

場景: 在解決A*尋路算法時,需要一個能支持大量插入和刪除(查找)操作的數據結構 鏈表和數組都有缺陷,這時就想到了樹,將樹設置爲左子樹小於自身,右子樹大於自身,這時查找,插入,刪除都比較快捷,但是如果插入

原创 Doing Homework again 杭電 1789

#include<stdio.h> void bubble_sort(int score[],int number); int expiry_day[1100]; int reduced_score[1100]; int can_got_

原创 1420 (A^B)%C

#include<stdio.h> int Calculate(_int64 a,int b,int c); int main() { int cycle_index; while(scanf("%d",&cycle_index)!

原创 杭電 2097

<pre name="code" class="cpp">#include<stdio.h> int judge_10(int num); int judge_12(int num); int judge_16(int num); in

原创 Last non-zero Digit in N!

先來說說思路: 首先這個數非常之大 所以我先用char 類型的字符數組來存儲 將其轉化爲整形大整數數組 lctoli  //long char to long int 然後大數除小數的模板是網上的 之後我們先來看一看數據 假設 輸入2

原创 QT 對於按鈕實現的思考

突然想知道按鈕是如何被響應的 1. 在操作系統中假設兩個應用窗口重疊了一部分 例如: 此時我點擊後面一個窗體 就會將後面的窗體置前 使用射線技術,也就是說 ,以鼠標當前座標(鼠標中斷,傳入座標和按下的按鈕(左鍵,右鍵,擴展鍵)) 發出