飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: VACN

[已解决] 关于脱壳的一些问题、、

[复制链接]

该用户从未签到

 楼主| 发表于 2008-9-20 21:49:02 | 显示全部楼层
我传不了附件。太大了。。你到PYG专用工具里看。有个LordPE_ SUPER。PYG(集成了网上....)的那个/应该很好找!
PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-8-12 00:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-9-21 09:50:44 | 显示全部楼层
    手动查找IAT就可以啦,要是不会手动可以用CHimpREC到时候会有一个无效指针
    1. 我来留个笔记给你吧
    2. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    3. 00400154 >  8725 28A54400   xchg dword ptr ds:[44A528],esp         //OD载入
    4. 0040015A    61              popad                                  //单步F8
    5. 0040015B    94              xchg eax,esp                           //到这里时注意堆栈窗口
    6. 0040015C    55              push ebp
    7. 0040015D    A4              movs byte ptr es:[edi],byte ptr ds:[esi]
    8. 0040015E    B6 80           mov dh,80
    9. 00400160    FF13            call dword ptr ds:[ebx]
    10. 00400162  ^ 73 F9           jnb short LordPE.0040015D
    11. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    12. 0044A52C   004001E8  LordPE.004001E8
    13. 0044A530   004001DC  LordPE.004001DC
    14. 0044A534   004001DE  LordPE.004001DE                                //堆栈窗口
    15. 0044A538   00404340  LordPE.00404340                                //此时在这里右键反汇编窗口中跟随,(此时的00404340就是我们的OEP)
    16. 0044A53C > 7C801D77  kernel32.LoadLibraryA                          
    17. 0044A540 > 7C80ADA0  kernel32.GetProcAddress
    18. 0044A544   00000000
    19. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    20. 00404340    0000            add byte ptr ds:[eax],al                //反汇编窗口跟随时会显示未解码的样式删除模块分析就可以成需要啦
    21. 00404342    0000            add byte ptr ds:[eax],al                //我们就在上面的00404340处执行右键断点,设置硬件执行断点
    22. 00404344    0000            add byte ptr ds:[eax],al                //设置好硬件断点,F8运行一下就停在了OEP
    23. 00404346    0000            add byte ptr ds:[eax],al              
    24. 00404348    0000            add byte ptr ds:[eax],al               
    25. 0040434A    0000            add byte ptr ds:[eax],al
    26. 0040434C    0000            add byte ptr ds:[eax],al
    27. 0040434E    0000            add byte ptr ds:[eax],al
    28. 00404350    0000            add byte ptr ds:[eax],al
    29. 00404352    0000            add byte ptr ds:[eax],al
    30. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    31. 00404340    51              push ecx                                 //这里即是我们的OEP
    32. 00404341    56              push esi                                 //此时dump程序运行 lmportrce 修复会出现就一排指针,一般除VB程序外其他语言都不可能的
    33. 00404342    6A 00           push 0                                   //我们注意下面这句 call dword ptr ds:[419160],我们在命令栏输入 d 419160,回车
    34. 00404344    FF15 60914100   call dword ptr ds:[419160]               //注意数据窗口
    35. 0040434A    A3 5CE74100     mov dword ptr ds:[41E75C],eax
    36. 0040434F    E8 BC000000     call LordPE.00404410
    37. 00404354    8B35 D8904100   mov esi,dword ptr ds:[4190D8]            ; kernel32.ExitProcess
    38. 0040435A    85C0            test eax,eax
    39. 0040435C    75 04           jnz short LordPE.00404362
    40. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    41. 00419160  7C80B6A1  kernel32.GetModuleHandleA                        //我们此时停在这里
    42. 00419164  7C801A24  kernel32.CreateFileA                             //拖动滚动条向上,找带有第一句带有API函数的
    43. 00419168  7C80ADA0  kernel32.GetProcAddress                          
    44. 0041916C  7C80220F  kernel32.WriteProcessMemory
    45. 00419170  7C809920  kernel32.GetCurrentProcessId
    46. 00419174  7C802442  kernel32.Sleep
    47. 00419178  7C80180E  kernel32.ReadFile
    48. ━━━━━━━━━━━━━━━━━━━━━━━━━━
    49. 0041900C  77DAEAF4  ADVAPI32.RegCreateKeyExA                         //找到这一句就是最上面啦,这个1900c也就是我们的 RVA
    50. 00419010  77DAEBE7  ADVAPI32.RegSetValueExA                          //此时运行我们的 lmportrce OEP填写 4340 RVA填上1900C 大小填上1000就好
    51. 00419014  77DCD11B  ADVAPI32.LookupPrivilegeValueA                   //会发现没有一个有效指针,点显示无效---右键剪切掉指针即可
    52. 00419018  77DA7753  ADVAPI32.OpenProcessToken                        //剪切指针后会发现全部有效啦,有186个指针,抓取我们dump出去的程序
    53. 0041901C  77DCC123  ADVAPI32.RegDeleteKeyA                           //运行成功,收工
    复制代码
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-9-25 19:02:29 | 显示全部楼层
    明白了。。哈哈。。。原来是这样。。。还是FSG经典入口形式比PEID查的OEP准啊。。谢谢。。对了。怎么标记已解决啊?
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-25 19:17:54 | 显示全部楼层
    首先你要明白什么是无效指针,一般的可以剪掉,但对于把你自定义的部份代码抽到的壳里运行的部份加密壳,在没有修复脚本前,没办法的情况下要自己跟踪,得到解码后的代码,自己去建一个空区段,然后把获得的代码粘过去,这是要修改 ESI 等指针数据,指向新代码地址,需然不是什么技术活,但确全是体力劳动,那个累,说起都害怕

    [ 本帖最后由 lgjxj 于 2008-9-25 19:19 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-9-28 09:40:54 | 显示全部楼层
    恩,谢谢~~~~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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