在逆向遇到neg+sbb指令的組合,不明白原因,上網一查,找到了.嘿嘿!
mov ebx, eax
neg ebx
push esi
sbb bl, bl
注:intel處理器的文件中宣告neg指令除了對運算元作符號取反外,它還要根據運算元的值設定cf標誌位的值。如果執行neg指令時運算元為0,則cf將被置為0。如果運算元為非零,則cf將被置為1。
neg是乙個簡單的取反指令,用來對運算元的算術符號取反——有時候也稱它為2的補碼(two』s complement。譯註:1的補碼與not指令對應,是邏輯取反指令)。neg用c描述的偽**:
result = -(operand);
sbb是一條帶借位的減法指令,這就是說sbb將第二個運算元(即右運算元)加上標誌位cf,然後將結果用第乙個運算元來減。sbb用c描述的偽**:
operand1 = operand1 - (operand2 + cf);
在上面的指令中neg的作用應該就是注中的,根據運算元來設定cf標誌位的值,如果ebx為0,那麼cf將被置為0,如果ebx為非零,則cf將被置為1.然後結合sbb,我們可以將以上4條指令理解為,當ebx等於0時,bl將等於0;ebx大於0時,bl將等於-1.
參考:reversing:逆向工程揭密-附錄a揭密**結構(4)
Linux指令組合使用 複雜
ifconfig eth0 grep mask awk awk f ifconfig 命令用於顯示或設定網路裝置 eht0 本機的乙太網卡配置引數 grep 命令用於查詢檔案裡符合條件的字串 awk 是一種處理文字檔案的語言,awk 行匹配語句 top bn 1 i ic grep cpu awk ...
this指標的用處
1.this指標的用處 乙個物件的this指標並不是物件本身的一部分,不會影響sizeof 物件 的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加...
mysql 索引用處 MySQL索引的用處
mysql索引是很重要的概念,應用的範圍非常廣。那麼,mysql索引究竟有何作用呢?下文將帶您一起尋找答案。mysql索引作用 在索引列上,除了上面提到的有序查詢之外,資料庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當資料量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬...