首页
社区
课程
招聘
[求助]关于改北斗壳的一些问题的请教
发表于: 2009-4-8 09:35 1623

[求助]关于改北斗壳的一些问题的请教

2009-4-8 09:35
1623
004C51C4  pushfd
004C51C5  pushad
004C51C6  call 004C51CB
004C51CB  pop ebp
004C51CC  mov eax,7                                      修改为sub ebp,7(ebp的值为入口点的内存值)
004C51D1  sub ebp,eax                                  NOP
004C51D3  lea esi,dword ptr ss:[ebp-48C]    修改为mov ebx,-48C和add ebx,ebp,记下此处的48C这个值就称A1。
004C51D9  mov al,byte ptr ds:[esi]                修改为mov al,0(al的值为eax的最低二位)
004C51DB  cmp al,0                                        NOP(EXE文件在ebp-48C的值为0,DLL则为1,所以可以将以下的判断语句NOP,如果修改DLL文件,此处有点不同。)
004C51DD  je short 004C51F1                      NOP(下面的修改代码写到NOP这里,也可以在这里写点花代码)
004C51DF  mov esi,ebp                              NOP
004C51E1  lea esi,dword ptr ss:[ebp-464]    NOP
004C51E7  mov al,byte ptr ds:[esi]                NOP
004C51E9  cmp al,1                                    NOP
004C51EB  je 004C5433                              NOP
004C51F1  mov byte ptr ds:[esi],1                修改为mov byte ptr ds:[ebx],1(往上移到NOP处)         
004C51F4  mov edx,ebp                        
004C51F6  sub edx,dword ptr ss:[ebp-4D0]    修改为sub ebx,44和sub edx,dword ptr ss:[ebx]
004C51FC  mov dword ptr ss:[ebp-4D0],edx    修改为mov dword ptr ss:[ebx],edx(edx的值为基址)
004C5202  add dword ptr ss:[ebp-4A0],edx    修改为add ebx,30和add dword ptr ss:[ebx],edx
004C5208  lea esi,dword ptr ss:[ebp-45C]      修改为add ebx,44和lea esi,dword ptr ss:[ebx]
004C520E  add dword ptr ds:[esi],edx
004C5210  pushad                                            二进制代码修改为50 51 52 53 54 55 56 57
004C5211  push 40                                        修改为mov ebx,40和push ebx
004C5213  push 1000                                  和下面一句一起修改为mov ebx,1000和push ebx和push ebx
004C5218  push 1000
004C521D  push 0                                        修改为sub ebx,1000和push ebx
004C521F  call dword ptr ss:[ebp-428]      修改为mov ebx,ebp和add ebx,-428和call dword ptr ss:[ebx],记下此处的428这个值,就称A2。
004C5225  test eax,eax                              NOP
004C5227  je 004C5597                            NOP
004C522D  mov dword ptr ss:[ebp-4A8],eax    修改为sub ebx,80和mov dword ptr ss:[ebx],eax004C5233  call 004C5238                      以下四句(含本句)NOP掉,修改为mov ebx,ebp和add ebx,3DC
004C5238  pop ebx                              NOP
004C5239  mov ecx,368                          NOP
004C523E  add ebx,ecx                          NOP
004C5240  push eax
004C5241  push ebx
004C5242  call 004C54F8                  004C54F8的上一行代码是JMP语句,NOP掉,本句修改为call 004C54F3
004C5247  popad                                  修改到此,有兴趣的可以继续
004C5248  mov esi,dword ptr ds:[esi]
004C524A  mov edi,ebp
这是一个北斗壳的改壳,我不明白的地方是:
004C51F6  sub edx,dword ptr ss:[ebp-4D0]    修改为sub ebx,44和sub edx,dword ptr ss:[ebx]
004C51FC  mov dword ptr ss:[ebp-4D0],edx    修改为mov dword ptr ss:[ebx],edx(edx的值为基址)
004C5202  add dword ptr ss:[ebp-4A0],edx    修改为add ebx,30和add dword ptr ss:[ebx],edx
004C5208  lea esi,dword ptr ss:[ebp-45C]      修改为add ebx,44和lea esi,dword ptr ss:[ebx]
这几句,看他的意思是吧ebp-4D0换成ebx,可是sub ebx,44怎么就是ebp-4D0呢 ??下面同理,麻烦大家帮我解惑。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//