C++の逆アセンブル | vicのブログ

vicのブログ

ツール系やソフト開発について書こうと思っています。
書き込み大歓迎です。
間違いとかもっといい方法とかあったらご指摘いただけるとありがたいです。
質問をいただいたら、記事をもっとわかりやすく変更します。

ブレークポイントを入れる。

実行(F5)

デバッグ>ウィンドウ>逆アセンブル

※VisualStudio2015Community使用

元ソース

#include<iostream>
void main()
{
	char* cstr = "abcdefg";

	char str[] = "abcdefg";

	system("pause");    // ここでブレークポイント入れた
}


実行>デバッグ>ウィンドウ>逆アセンブル                             (1部のみ)

--- c:\xxxxxxxx\consoleapplication2015\consoleapplication2015\main2015.cpp
#include<iostream>
void main()
{
013C1700  push        ebp
013C1701  mov         ebp,esp
013C1703  sub         esp,0E0h
013C1709  push        ebx
013C170A  push        esi
013C170B  push        edi
013C170C  lea         edi,[ebp-0E0h]
013C1712  mov         ecx,38h
013C1717  mov         eax,0CCCCCCCCh
013C171C  rep stos    dword ptr es:[edi]
013C171E  mov         eax,dword ptr [__security_cookie (013C9004h)]
013C1723  xor         eax,ebp
013C1725  mov         dword ptr [ebp-4],eax
	char* cstr = "abcdefg";
013C1728  mov         dword ptr [cstr],offset string "abcdefg" (013C6B30h)

	char str[] = "abcdefg";
013C172F  mov         eax,dword ptr [string "abcdefg" (013C6B30h)]
013C1734  mov         dword ptr [str],eax
013C1737  mov         ecx,dword ptr ds:[13C6B34h]
013C173D  mov         dword ptr [ebp-18h],ecx

	system("pause");
013C1740  mov         esi,esp
013C1742  push        offset string "pause" (013C6B3Ch)
013C1747  call        dword ptr [__imp__system (013CA168h)]
013C174D  add         esp,4
013C1750  cmp         esi,esp
013C1752  call        __RTC_CheckEsp (013C1118h)
}
013C1757  xor         eax,eax
013C1759  push        edx
013C175A  mov         ecx,ebp
013C175C  push        eax
013C175D  lea         edx,ds:[13C1788h]
013C1763  call        @_RTC_CheckStackVars@8 (013C125Dh)
013C1768  pop         eax
013C1769  pop         edx
013C176A  pop         edi
013C176B  pop         esi
013C176C  pop         ebx
013C176D  mov         ecx,dword ptr [ebp-4]
013C1770  xor         ecx,ebp
013C1772  call        @__security_check_cookie@4 (013C1271h)
013C1777  add         esp,0E0h
013C177D  cmp         ebp,esp
013C177F  call        __RTC_CheckEsp (013C1118h)
013C1784  mov         esp,ebp
013C1786  pop         ebp
013C1787  ret
013C1788  add         dword ptr [eax],eax
013C178A  add         byte ptr [eax],al
013C178C  nop
013C178D  pop         ss
013C178E  cmp         al,1
013C1790  in          al,0FFh
013C1792  ?? ??
013C1793  dec         dword ptr [eax]
013C1795  add         byte ptr [eax],al
013C1797  add         byte ptr [edi+edx+7473013Ch],bl
013C179E  jb          _main+0A0h (013C17A0h)
--- ソース ファイルがありません -------------------------------------------------------------