能力值:
( LV2,RANK:10 )
2 楼
能分析一下带模板的简单程序吗?
能力值:
( LV2,RANK:10 )
3 楼
逆向学习方法值得借鉴。 C++我好久没用了,温故一下。
能力值:
( LV2,RANK:10 )
4 楼
学习了,学习
能力值:
(RANK:680 )
5 楼
现在还没到哪一章,慢慢来.
能力值:
( LV2,RANK:10 )
6 楼
高!向你学习!
能力值:
( LV2,RANK:10 )
7 楼
我现在也在着手学习 逆向 可不可以交个朋友 我的 QQ 6054769
能力值:
( LV2,RANK:10 )
8 楼
支持LZ的原创,可以让大家多多学习和交流
能力值:
( LV2,RANK:10 )
9 楼
学了
大家努力
能力值:
( LV4,RANK:50 )
10 楼
楼主,你好,我反汇编后的代码怎么与你的不同啊?
1、比你的多了一个call调用
2、少一个语句(我猜是被VC优化后去掉了):sf.b = 0x9999;
操作系统: Windows XP SP3
编译软件: VC 6.0 SP6
编译目标: Win32 Release
反编软件: OllyDGB 1.10, cao_cong 汉化版
我的代码是这样的:
00401030 /$ 55 push ebp
00401031 |. 8BEC mov ebp, esp
00401033 |. 83EC 14 sub esp, 14
00401036 |. C745 EC 03000>mov dword ptr [ebp-14], 3
0040103D |. C745 F0 04000>mov dword ptr [ebp-10], 4
00401044 |. C745 F4 05000>mov dword ptr [ebp-C], 5
0040104B |. C645 F8 58 mov byte ptr [ebp-8], 58
0040104F |. C745 F9 05000>mov dword ptr [ebp-7], 5 ; 经过优化后,省略了sf.b = 0x9999; 语句
00401056 |. CC int3
00401057 |. 6A 0C push 0C
00401059 |. 68 30704000 push 00407030 ; ASCII "%d "
0040105E |. E8 4D000000 call 004010B0
00401063 |. 6A 05 push 5
00401065 |. 68 30704000 push 00407030 ; ASCII "%d "
0040106A |. E8 41000000 call 004010B0
0040106F |. 6A 04 push 4
00401071 |. 68 30704000 push 00407030 ; ASCII "%d "
00401076 |. E8 35000000 call 004010B0
0040107B |. 8B45 F0 mov eax, dword ptr [ebp-10]
0040107E |. 8B4D EC mov ecx, dword ptr [ebp-14]
00401081 |. 83C4 18 add esp, 18
00401084 |. 50 push eax
00401085 |. 51 push ecx
00401086 |. 8D4D EC lea ecx, dword ptr [ebp-14]
00401089 |. E8 72FFFFFF call 00401000
0040108E |. 6A 04 push 4
00401090 |. 8D4D EC lea ecx, dword ptr [ebp-14]
00401093 |. E8 78FFFFFF call 00401010
00401098 |. 8D4D F8 lea ecx, dword ptr [ebp-8]
0040109B |. E8 80FFFFFF call 00401020
004010A0 |. 33C0 xor eax, eax
004010A2 |. 8BE5 mov esp, ebp
004010A4 |. 5D pop ebp
004010A5 \. C3 retn 00401000 /$ 8B4424 08 mov eax, dword ptr [esp+8]
00401004 |. 8B5424 04 mov edx, dword ptr [esp+4]
00401008 |. 03D0 add edx, eax
0040100A |. 8951 08 mov dword ptr [ecx+8], edx
0040100D \. C2 0800 retn 8
00401010 /$ 8B4424 04 mov eax, dword ptr [esp+4]
00401014 |. 8B11 mov edx, dword ptr [ecx]
00401016 |. 03D0 add edx, eax
00401018 |. 8911 mov dword ptr [ecx], edx
0040101A \. C2 0400 retn 4
0040101D 90 nop
0040101E 90 nop
0040101F 90 nop
00401020 /$ 8B41 01 mov eax, dword ptr [ecx+1]
00401023 |. C601 4A mov byte ptr [ecx], 4A
00401026 |. 40 inc eax
00401027 |. 8941 01 mov dword ptr [ecx+1], eax
0040102A \. C3 retn
能力值:
( LV4,RANK:50 )
11 楼
问一下,有没有怎么逆向方面的书籍,给我们这些菜鸟推荐一下
能力值:
( LV2,RANK:10 )
12 楼
这样的看起来好
能力值:
( LV2,RANK:10 )
13 楼
哎,本人菜鸟。
请问下面这个结构体的大小怎么算
struct _tag
{
char c;
short s;
long l;
};
能力值:
( LV2,RANK:10 )
14 楼
在对齐的情况下应为 8 , sizeof(char) == 1, sizeof(short) ==2 ,size(long) =4, 1 + 2 <= 4 ,所以 char 和 short 合起来,总共分配 4,再加上long 的 4 ,结果为 8