pwn中的乙個小問題

2021-07-04 12:23:32 字數 586 閱讀 6641

今天做了一道pwn的題目, 從ida 上看偏移是bp-14h , 但是我輸入了14h後並未到達ebp, 而是還有0x8 的距離, 難道ida有誤。 於是就看了 下函式頭, 發現了一條語句

and esp 0x0fffffff0 ,實際上就是對齊用的, 所以多了2個dd .

下面引用看雪上的一段話

至於 "and esp,fffffff0h" 

因為0xfffffff0 = 11111111 11111111 11111111 11110000

這個相當於把esp的最後4個bit位清零, 也就是把stack往低位址對齊使其能夠被16整除...這樣對32位或者64位cpu來說,所有的的stack上的基本變數都可以一次訪問到(如果位址沒有對齊,那麼有可能cpu需要訪問兩次記憶體來獲得乙個8 byte的變數) -- 這樣看來,實際上將stack位址在8 byte上對齊對32位甚至64位的cpu都足夠了...但是問題是對於一些 simd (single instruction, multiple data) 的指令*規定*訪問的位址必須向16 byte對齊 (也就是必須被16為整除 -- 這是從指令效率的方面來設計的).    

位址 很簡單的乙個問題 , 大牛請輕噴。

乙個小問題

error c2679 binary no operator defined which takes a right hand operand of type class smanip int or there is no acceptable conversion 除錯了好久,就是找不出問題在哪。...

乙個小問題。

drop table student create table student sno number 10 sname varchar2 10 sage int insert into student values 1,aa 21 insert into student values 1,aa 21...

乙個小問題

設機器字長w ww位元,u w w u cu w,w uc u w,w uc。將w ww分為c cc個連續長度為u uu位元的區間,稱為u uu區間。實現操作 對於乙個機器字x xx,如果乙個u uu區間非0,則將區間最右bit置1,其餘為0。要求演算法時間為o 1 o 1 o 1 考慮異或操作。對...