• 网络攻防学习心得一(20159320)工具学习


    由于自己对逆向相关信息有比较大的兴趣,所以并没有参照老师所推介的sectools去学习一些工具,反而自己学习了其他的逆向相关的工具的简单应用。

    调试工具ollydbg  查壳工具peid 脱壳工具loadpe   修复工具importrec 还有就是简单IDA的了解

    peid:一个简单的查壳工具,通过作者对很多壳的了解编写出来的查壳工具,可以查询一些常见的带壳程序所加的壳,方便具体脱壳。但是此工具只能作为参考,有些时候查壳未必正确,或者查不出对应壳,也可以通过区段来看一下壳的简单特征,从而采取对应方法来解决脱壳问题。

    loadpe :一个脱壳工具(当然,脱壳过程中也可以通过od自带的脱壳工具通过两种方式来脱壳),此工具运用之前必须找到程序真正的OEP,从而查找对应IAT,从而更新函数表,找到其中无效的函数,可以 尝试直接删除少的无效函数,如果比较多的话,可以通过追踪来修复或者查找对应函数。之后则重新载入。

    Importrec:这是一个修复的工具,在上一部LOADpe出来的程序中,可能重新载入之后并不能真正运行,这时候涉及到修复的过程,在简单修复中,首先是找到对应进程,重新计算镜像大小,输入真正OEP然后自动查找IAT,之后则是获取输入表完成修复,有的时候不能修复的情况下,涉及到的是查找RVA,在查找RVA的时候方法则是找到一个call,跟进call对应地址,在od数据窗口中找到数据全为零的点,则RVA为下一个地址,然后查找最下面全为零的点,计算两点之间的偏移则为SIZE,有的时候为了方便,可以不用计算SIZE,直接写成1000则够用,如此之后则可以修复一些不能运行的情况。

    如果修复之后还是不能运行,则可以尝试用LOADPE尝试重建PE,这也是一种处理的方法。

    IDA:IDA在时下用的也不少,也有他对应的一些有点。这个工具用的时候还不多,在课余时间,我在看逆向工程核心原理,这里介绍了一些IDA的运用,下周应该可以看到对应的内容,所以此次暂时不多说。

    od:作为一种调试工具,他的使用感觉有的地方有点困惑,首先说说总结的一些简单壳的脱壳方法吧。

    常见的壳有两种:加密壳和压缩壳

    常见的方法:1、单步跟踪法:注意向下跳转实现,向上跳转则不让实现,通过下断的方式即f4及f8组合实现,但需要注意一些语句也得跳过,有的时候还得注意长call让跳转,短call跟进相结合。

                     2、esp定律:所谓esp定律则是堆栈平衡大法。我觉得需要注意的是一些push引起的esp突变,然后则在数据窗口跟进,找到对应位置下断然后f4运行之后再进行单步,也和单步方式一样,大跳转的情况及可能为程序真正的OEP。

                     3、内存镜像法:首先找到内存窗口即为M,进入之后找到rec区段(注意有两个rec,一个为程序的,一个为系统的)在此下断运行,然后再次进入M找到401000位置下断及data段然后运行,观察入口特征。注意有的时候,程序只需要一次镜像法完成。

                     4、模拟跟踪法:其中包括sfx方式,但由于在自己电脑实现过程中,模拟法出了点问题,所以并没有实现,但是在虚拟机中能够实现,问题还在思考中,所以也不写出来了。

                     5、最后一次异常法:这个方法通过设置异常中断,计算shift f9次数,当程序跑飞的时候需要的次数,然后重新载入之后少按一次来找到位置。然后进行单步找oep

                     6、还有一些特殊的断点,还有一些设置包括tc eip <xxxx等方式来找到(由于笔记忘在实验室了,所以这边不写出来那些断点方式,但是这些断点如何实现的  还需要继续深究)

    在oep的查找过程中还需要记得的就是一些常见语言的入口点特征,记住或者熟悉这些特征可以方便查找oep,以下给出一些常见特征:

    VB:

    004012D4 > 68 54474000 push QQ个性网.00404754
    004012D9 E8 F0FFFFFF call <jmp.&MSVBVM60.#100>
    004012DE 0000 add byte ptr ds:[eax],al
    004012E0 0000 add byte ptr ds:[eax],al
    004012E2 0000 add byte ptr ds:[eax],al
    004012E4 3000 xor byte ptr ds:[eax],al
    004012E6 0000 add byte ptr ds:[eax],al
    004012E8 48 dec eax

    delphi:

    004A5C54 > 55 push ebp
    004A5C55 8BEC mov ebp,esp
    004A5C57 83C4 F0 add esp,-10
    004A5C5A B8 EC594A00 mov eax,openpro.004A59EC

    BC++:

    00401678 > /EB 10 jmp short btengine.0040168A
    0040167A |66:623A bound di,dword ptr ds:[edx]
    0040167D |43 inc ebx
    0040167E |2B2B sub ebp,dword ptr ds:[ebx]
    00401680 |48 dec eax
    00401681 |4F dec edi
    00401682 |4F dec edi
    00401683 |4B dec ebx
    00401684 |90 nop
    00401685 -|E9 98005400 jmp 00941722
    0040168A A1 8B005400 mov eax,dword ptr ds:[54008B]
    0040168F C1E0 02 shl eax,2
    00401692 A3 8F005400 mov dword ptr ds:[54008F],eax
    00401697 52 push edx
    00401698 6A 00 push 0
    0040169A E8 99D01300 call <jmp.&KERNEL32.GetModuleHandleA>
    0040169F 8BD0 mov edx,eax

    VC++:

    0040A41E > 55 push ebp
    0040A41F 8BEC mov ebp,esp
    0040A421 6A FF push -1
    0040A423 68 C8CB4000 push 跑跑排行.0040CBC8
    0040A428 68 A4A54000 push <jmp.&MSVCRT._except_handler3>
    0040A42D 64:A1 00000000 mov eax,dword ptr fs:[0]
    0040A433 50 push eax
    0040A434 64:8925 0000000>mov dword ptr fs:[0],esp
    0040A43B 83EC 68 sub esp,68
    0040A43E 53 push ebx
    0040A43F 56 push esi
    0040A440 57 push edi

    MASM(汇编):

    004035C9 > 6A 00 push 0
    004035CB E8 A20A0000 call <jmp.&kernel32.GetModuleHandleA>
    004035D0 A3 5B704000 mov dword ptr ds:[40705B],eax
    004035D5 68 80000000 push 80
    004035DA 68 2C754000 push 11.0040752C
    004035DF FF35 5B704000 push dword ptr ds:[40705B]
    004035E5 E8 820A0000 call <jmp.&kernel32.GetModuleFileNameA>
    004035EA E8 87070000 call 11.00403D76
    004035EF 6A 00 push 0
    004035F1 68 0B364000 push 11.0040360B
    004035F6 6A 00 push 0
    004035F8 6A 64 push 64
    004035FA FF35 5B704000 push dword ptr ds:[40705B]

  • 相关阅读:
    超全面的vue.js使用总结
    Python3 [字典】类型 学习笔记
    Python3 [集合]类型 学习笔记
    Python 希尔排序法
    Python 堆排序法
    Python 归并排序法
    Python 冒泡排序法
    Python 选择排序法
    Python 快速排序法(转)
    Python 插入排序法
  • 原文地址:https://www.cnblogs.com/miaohj/p/5274211.html
Copyright © 2020-2023  润新知