2011年9月23日星期五
[轉載]IDA sp-analysis failed 不能F5的解决方案之(一)
有时候用IDA的F5的时候遇到带sp-analysis failed的函数会失败。
代码:
.text:004015ED sub_4015ED proc near ; CODE XREF: sub_40116A+1A6p
.text:004015ED ; sub_40116A+1C7p
.text:004015ED
.text:004015ED var_C = byte ptr -0Ch
.text:004015ED var_8 = dword ptr -8
.text:004015ED var_4 = dword ptr -4
.text:004015ED arg_0 = dword ptr 10h
.text:004015ED
.text:004015ED push ecx
.text:004015EE push esi
.text:004015EF push ebp
.text:004015F0 mov ebp, esp
.text:004015F2 add esp, 0FFFFFFF8h
.text:004015F5 mov ebx, offset String
.text:004015FA cmp dword ptr [ebx], 0FFFFFFFFh
.text:004015FD jz short loc_401606
.text:004015FF mov eax, offset loc_401607
.text:00401604 jmp eax
.text:00401606 ; ---------------------------------------------------------------------------
.text:00401606
.text:00401606 loc_401606: ; CODE XREF: sub_4015ED+10j
.text:00401606 nop
.text:00401607
.text:00401607 loc_401607: ; DATA XREF: sub_4015ED+12o
.text:00401607 xor eax, eax
.text:00401609 mov esi, [ebp+arg_0]
.text:0040160C mov al, [esi+ebx]
.text:0040160F xor ebx, ebx
.text:00401611 push eax
.text:00401612 call sub_4014BF
.text:00401617 mov [ebp+var_4], ebx
.text:0040161A call sub_4014D5
.text:0040161F mov [ebp+var_8], ebx
.text:00401622 push 0
.text:00401624 push offset dword_403425
.text:00401629 push [ebp+var_4]
.text:0040162C push [ebp+var_8]
.text:0040162F call sub_401561
.text:00401634 mov eax, dword_403425
.text:00401639 ror eax, 8
.text:0040163C cmp eax, 5
.text:0040163F jz short loc_401649
.text:00401641 push eax
.text:00401642 mov eax, offset loc_40164A
.text:00401647 jmp eax
.text:00401649 ; ---------------------------------------------------------------------------
.text:00401649
.text:00401649 loc_401649: ; CODE XREF: sub_4015ED+52j
.text:00401649 nop
.text:0040164A
.text:0040164A loc_40164A: ; DATA XREF: sub_4015ED+55o
.text:0040164A pop eax
.text:0040164B xor ah, [ebp+var_C]
.text:0040164E xor al, [ebp+var_C]
.text:00401651 xor edx, edx
.text:00401653 mov bx, ax
.text:00401656 mov ecx, 4
.text:0040165B
.text:0040165B loc_40165B: ; CODE XREF: sub_4015ED+83j
.text:0040165B and al, 0Fh
.text:0040165D cmp al, 9
.text:0040165F jle short loc_401663
.text:00401661 add al, 7
.text:00401663
.text:00401663 loc_401663: ; CODE XREF: sub_4015ED+72j
.text:00401663 add al, 30h
.text:00401665 mov dl, al
.text:00401667 ror edx, 8
.text:0040166A shr bx, 4
.text:0040166E mov al, bl
.text:00401670 loop loc_40165B
.text:00401672 add esp, 1Ch
.text:00401675 pop ebp
.text:00401676 pop esi
.text:00401677 pop ecx
.text:00401678 retn
.text:00401678 sub_4015ED endp ; sp-analysis failed
用外径湾岸之后改掉程式码在储存,然后重新用开发协会打开F5键就可以了,SP -分析失败也就消失了。
在OD里直接改成JMP 40164A
分析之后不难发现不能F5的原因,就在于跳转。
一个函数里面的一个跳转在未知的情况下会出现不能F5键。
结果:
代码:
char __cdecl sub_4015ED(int a1)
{
unsigned __int16 v1; // ax@1
int v2; // edx@1
signed int v3; // ecx@1
unsigned __int16 v4; // bx@1
char v5; // ST10_1@1
int v6; // eax@1
char v7; // ST10_1@1
char v8; // al@2
sub_4014BF(String[a1]);
sub_4014D5(v5);
sub_401561(0, 0, &dword_403425, 0);
v6 = __ROR__(dword_403425, 8);
HIBYTE(v1) = v7 ^ BYTE1(v6);
LOBYTE(v1) = v7 ^ v1;
v2 = 0;
v4 = v1;
v3 = 4;
do
{
v8 = v1 & 0xF;
if ( v8 > 9 )
v8 += 7;
LOBYTE(v2) = v1 + 48;
v2 = __ROR__(v2, 8);
v4 >>= 4;
LOBYTE(v1) = v4;
--v3;
}
while ( v3 );
return v1;
}
标签:
IDA 6.2,
IDA 6.2測試版,
IDA程式教程
2011年8月7日星期日
IDA學習利器-IDA pro book 英文第二版下載
IDA反彙編程式是強大的反彙編利器,功能涵蓋了程式反彙編的方面,而且,在新版開始,IDA加強了調試功能,它的雙機調試是可以和windbg可以聘美而且更加的強大.
很多初學者在使用IDA上覺得有難度,IDA pro book 這本書可以說是學習IDA最好的利器,它從最基本的操作到複雜的功能都介紹詳細,並且細微研讀后可以補充反彙編知識的不足.
此為IDA pro book第二版再版,結構沒有變化,卻增加了一下內容:
第四部份 擴展IDA的性能 這張大量更新了IDA 內核和 SDK內容,例如第17章到第19章,解釋如何編寫插件\文件加載和使用腳本(包括IDC和IDA Python)
第15章 介紹了IDC的變化,新的函數和例子,並且介紹有用的設置,還增加了IDA Python一個例子.
第17章 有一部份新的內容,如何使用Qt到IDA接口的UI豐富的插件.
第23章 介紹有用的插件,新的插件有:MyNav,Class informer,IdaPdf.
第26章 強大的調試功能,有實例.
IDA pro book下載地址:http://filemarkets.com/file/newbing/a25aa6cc/
很多初學者在使用IDA上覺得有難度,IDA pro book 這本書可以說是學習IDA最好的利器,它從最基本的操作到複雜的功能都介紹詳細,並且細微研讀后可以補充反彙編知識的不足.
此為IDA pro book第二版再版,結構沒有變化,卻增加了一下內容:
第四部份 擴展IDA的性能 這張大量更新了IDA 內核和 SDK內容,例如第17章到第19章,解釋如何編寫插件\文件加載和使用腳本(包括IDC和IDA Python)
第15章 介紹了IDC的變化,新的函數和例子,並且介紹有用的設置,還增加了IDA Python一個例子.
第17章 有一部份新的內容,如何使用Qt到IDA接口的UI豐富的插件.
第23章 介紹有用的插件,新的插件有:MyNav,Class informer,IdaPdf.
第26章 強大的調試功能,有實例.
IDA pro book下載地址:http://filemarkets.com/file/newbing/a25aa6cc/
标签:
IDA,
IDA pro book第二版,
IDA程式教程
订阅:
博文 (Atom)