吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 21417|回复: 30
收起左侧

[求助] 请各位指点一下新手,什么是程序领空,什么是系统领空?

[复制链接]
海妮 发表于 2011-1-5 21:23
我刚学没几天的....由于不是计算机专业出身,学起来很费力很费力...

今天在用调用堆栈的方法找 软件注册错误提示框 时发现有两个一样的函数!
上面一个进入修改了代码然后可以用右键选择复制到可执行文件进行保存,下面一个函数进入后不可以保存!

我上网搜索了一下,有人说有程序领空和系统领空的区分

请问各位前辈,是有这样的区分吗?那哪个是系统领空的,哪个是程序领空的?怎么去区分?

1.JPG



另外从这两个函数跟进去,代码都不一样哎...

上面一个是

  1. 77D507EC  /.  55            push ebp
  2. 77D507ED  |.  8BEC          mov ebp,esp
  3. 77D507EF  |.  833D BC14D777>cmp dword ptr ds:[77D714BC],0
  4. 77D507F6      74 24         je short USER32.77D5081C
  5. 77D507F8  |.  64:A1 1800000>mov eax,dword ptr fs:[18]
  6. 77D507FE  |.  6A 00         push 0
  7. 77D50800  |.  FF70 24       push dword ptr ds:[eax+24]
  8. 77D50803  |.  68 241BD777   push USER32.77D71B24
  9. 77D50808  |.  FF15 C412D177 call dword ptr ds:[<&KERNEL32.Interlocke>;  kernel32.InterlockedCompareExchange
  10. 77D5080E  |.  85C0          test eax,eax
  11. 77D50810      75 0A         jnz short USER32.77D5081C
  12. 77D50812  |.  C705 201BD777>mov dword ptr ds:[77D71B20],1
  13. 77D5081C  |>  6A 00         push 0                                   ; /LanguageID = 0 (LANG_NEUTRAL)
  14. 77D5081E  |.  FF75 14       push [arg.4]                             ; |Style
  15. 77D50821  |.  FF75 10       push [arg.3]                             ; |Title
  16. 77D50824  |.  FF75 0C       push [arg.2]                             ; |Text
  17. 77D50827  |.  FF75 08       push [arg.1]                             ; |hOwner
  18. 77D5082A  |.  E8 2D000000   call USER32.MessageBoxExA                ; \注册码错误
  19. 77D5082F  |.  5D            pop ebp
  20. 77D50830  \.  C2 1000       retn 10

复制代码




下面一个函数跟进去是:


  1. 10011C50    56              push esi
  2. 10011C51    8B7424 08       mov esi,dword ptr ss:[esp+8]
  3. 10011C55    85F6            test esi,esi
  4. 10011C57    75 12           jnz short 10011C6B
  5. 10011C59    8B4424 14       mov eax,dword ptr ss:[esp+14]
  6. 10011C5D    8B4C24 10       mov ecx,dword ptr ss:[esp+10]
  7. 10011C61    8B5424 0C       mov edx,dword ptr ss:[esp+C]
  8. 10011C65    50              push eax
  9. 10011C66    51              push ecx
  10. 10011C67    52              push edx
  11. 10011C68    56              push esi
  12. 10011C69    EB 23           jmp short 10011C8E
  13. 10011C6B    8B06            mov eax,dword ptr ds:[esi]
  14. 10011C6D    85C0            test eax,eax
  15. 10011C6F    74 3B           je short 10011CAC
  16. 10011C71    50              push eax
  17. 10011C72    FF15 D8C20110   call dword ptr ds:[1001C2D8]             ; USER32.IsWindow
  18. 10011C78    85C0            test eax,eax
  19. 10011C7A    74 30           je short 10011CAC
  20. 10011C7C    8B4424 14       mov eax,dword ptr ss:[esp+14]
  21. 10011C80    8B4C24 10       mov ecx,dword ptr ss:[esp+10]
  22. 10011C84    8B5424 0C       mov edx,dword ptr ss:[esp+C]
  23. 10011C88    50              push eax
  24. 10011C89    8B06            mov eax,dword ptr ds:[esi]
  25. 10011C8B    51              push ecx
  26. 10011C8C    52              push edx
  27. 10011C8D    50              push eax
  28. 10011C8E    FF15 18C30110   call dword ptr ds:[1001C318]             ; USER32.MessageBoxA
  29. 10011C94    48              dec eax
  30. 10011C95    74 0E           je short 10011CA5
  31. 10011C97    83E8 03         sub eax,3
  32. 10011C9A    74 09           je short 10011CA5
  33. 10011C9C    83E8 02         sub eax,2
  34. 10011C9F    74 04           je short 10011CA5
  35. 10011CA1    33C0            xor eax,eax
  36. 10011CA3    5E              pop esi
  37. 10011CA4    C3              retn


复制代码




由于一些底子差基础薄,一些基本的东西我都搞不清楚,学起来太费力了!

请各位前辈给我讲解一下,该从哪个函数跟进去,哪个是关键CALL  哪个是关键跳转??


万分感谢!!!!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zone0826 发表于 2011-1-6 10:20
我看yjd333 这么热心,我也想掺和一下,试试回答一下这个问题,看看我的理解有错没有,并借此机会感激一下论坛各位大大,从你们那里学习到了好多东西了,我也希望能帮助别人,同时成就自己。所谓程序领空就是OD载入程序,程序本身的代码,见图,LCG主线程,模块API地址?,API地址?就是我载入的软件程序名称, 3.jpg ,当系统运行至下图的位置, 4.jpg 我们可以看到,模块变成了USE32,这就是这个程序调用的咱们系统的一个函数模块,这个是放在WINDOWS目录下SYSTEM32文件夹里的一个DLL文件,所有的WINDOWS系统都是有这个文件的哈,我管这个叫系统领空,因为USE32就是系统的一部分了……
当然我们载入程序后,按ALT+M,看一下内存镜像,也可以清楚的知道,哪部分地址是系统领空,哪部分地址为程序领空,见图, 1.jpg 这个可以看出,00400000这个基址开始的地址,一直到00488000结束的基址都是程序领空,下面的都是调用的系统模块,即为系统领空。 6.JPG ,咱们也可以按ALT+E,看看都调用了那些系统模块,而且还有该模块的存放地址和文件名,见图,咱们就可以得知,这个程序是调用了哪些系统模块,很方便,当然OD的功能远远不止这些,让我们继续努力,一起追赶大牛的水平吧。
2.jpg

免费评分

参与人数 2热心值 +2 收起 理由
10086184 + 1 热心回复!
yjd333 + 1 精华,学习了!

查看全部评分

iRun 发表于 2011-1-6 17:54
回复 1# 海妮


    首先呢,使用“领空”这个词来形容我们在调试某个程序的时候的正在操作或观察的内存区域 是非常恰当非常贴切的。然而这个词却让我们的楼主困惑不已O(∩_∩)O~。




请楼主补习下有关“内存分页机制”的相关知识 简单说来就是系统为每个正在运行的程序分配了一片独立的、私有的内存空间用于存储程序代码以及执行代码所需要的

临时空间  每个程序都是互相独立 互不干涉的 互相不能访问对方的私有内存空间的

当我们使用调试工具逆向分析一个正在运行着的程序的时候,就需要能够访问这块私有的内存 也就是进入这个应用程序的领空 因为只有这样我们才能看到它的代码以

及它的执行情况

操作系统也是程序 他自然也有自己的内存空间 也有自己的领空



当你做了一段时间的逆向分析后自然会找到更明确、更具有真实感的关于领空的认识



当然我所给你说的是狭义上的领空 希望你将来能理解到它的全貌



网上copy,不介意吧.
catanddog 发表于 2011-1-5 21:41
 楼主| 海妮 发表于 2011-1-5 22:03
呵呵,谢谢...一起学习吧!
k282913386 发表于 2011-1-5 22:14
学习一下
gana 发表于 2011-1-5 22:17
我也不懂,帮顶,学习下!!!!
y123456789 发表于 2011-1-5 22:39
有壳不?什么壳
妖精的旋律 发表于 2011-1-5 22:43
程序领空就是你这个软件的领空  

系统领空是运行这个软件需要调用到系统的一些DLL啊 函数什么什么的  既然调用了 那用OD也能进入到调用系统的地方 那个地方就是系统领空。。

这是我的感觉,如果不对 请指正。。
yjd333 发表于 2011-1-5 22:43
看od标题,模块后面跟着程序名字就表示在程序领空。
这些系统dll一般情况下不需要鸟他。alt+F9返回去。

上面2段代码都没有。

看图下bp MessageBoxA断点或者搜索字串应该容易找到地方。

点评

谢谢楼主 学习了  发表于 2012-8-24 11:42
8#楼解释的正点!谢谢分享!学习啦!  发表于 2011-8-10 23:05

免费评分

参与人数 1热心值 +1 收起 理由
海妮 + 1 大哥,您每次都热心解答新手的问题,向您致 ...

查看全部评分

yjd333 发表于 2011-1-5 23:13
会的就回答,俺也是新手
不舍远走 发表于 2011-1-5 23:23
一直F8 先到了程序的领空 在看看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2021-4-19 05:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表