03 常见补丁工具的使用

本章摘要:

1、od里的immlebel的原理

为什么我把矿泉水.004019B3修改之后,od当中所有的这个标签都会被修改?

我们ctrl+g输入跳转的地址

在函数的头部添加标签

回来之后发现已经被重命名了

其实这完全不是什么黑魔法,只不过是od遇到我们给打标签的这个地址,就自动识别,把他呈现出字符串的形式,说白了就是给call xxxx这个地址给他取一个别名罢了!

给函数取名字在我们日后逆VM经常遇到,只不过使用的工具不是od罢了

2、为什么有时候od搜索不到的字符串,但是通过ida却可以搜索到?

》这是因为od插件的问题,通过分析od字符串搜索引擎的源码ustrref,找到他的findascii函数,可以看到它是通过检查push mov lea指令后面的地址里的数据是不是以'\0'结尾来判定字符串

我们可以查看一下od中文搜索引擎插件的源码:

可以发现它是先循环检查代码当中的push mov lea指令,如果是的话就去检查指令后面的操作数

判断操作数是不是以'\0'结束的,如果是的话,它就把这个操作数判断成字符串

那么push的是一个常量,也就是字符串的首地址

如果这个地址里的数据以'\0'结尾,od就把它判定为字符串

而ida的原理是直接搜索PE文件,也就是说exe文件编译的时候,字符串常量通常是写死的,编译后就直接放到常量区,通过检测是不是以'\0'结尾,就能轻易判断它是不是字符串了。

3、那么如何让ida和od都搜索不到呢?

编译之后已经不是字符串了

它是运行的时候这段代码才会生效,也就是说和指令混在一起了,被编译器做成16进制指令了

那么定义成全局变量呢

全局可以搜到是因为全局变量在运行前就已经写死了,又被固定在PE文件当中了

4、易语言里典型的多线程特征

夹在两个ret中间,一个call很简短

撤销操作:选中多行,然后撤销

如何实现这种多线程程序的破jie?

在messagebox末尾下断,然后一路返回

找到易语言典型的线程特征,然后点击查找参考》选中命令

选择不是红色的那个

然后往上找到关键跳,把他nop掉就ok了

跳转的后面就是启动线程的函数

4.1 如何判断别人写的代码通过多线程的方式来对你产生干扰?

当你从MessageBox往后跟的时候,如果进入7开头的系统领空,就很有可能是多线程的技术,就不要再继续往后跟了,转而采用上面的方法来实现突破

5、ida里面如何保存修改后的exe?

52:52

静态分析非常有用,用于分析那种强壳,反调试根本过不去的软件,逆向程序的算法但没法调试

6、常见补丁工具的使用

1)PYG内存补丁工具的使用:1:12:20

程序要拖到同一个目录之下

2)PYG dll劫持补丁工具使用

加壳,然后另存为一下

相关推荐
Dream it possible!1 小时前
LeetCode 面试经典 150_栈_简化路径(53_71_C++_中等)(栈+stringstream)
c++·leetcode·面试·
爱和冰阔落1 小时前
【C++继承下】继承与友元 / static 菱形继承与虚继承 组合的详解分析
c++·面试·腾讯云ai代码助手
天桥下的卖艺者1 小时前
R语言手搓一个计算生存分析C指数(C-index)的函数算法
c语言·算法·r语言
Yurko131 小时前
【C语言】基本语法结构(上篇)
c语言·开发语言·学习
草莓熊Lotso2 小时前
《C++ Stack 与 Queue 完全使用指南:基础操作 + 经典场景 + 实战习题》
开发语言·c++·算法
敲上瘾2 小时前
单序列和双序列问题——动态规划
c++·算法·动态规划
ajassi20002 小时前
开源 C++ QT QML 开发(二十二)多媒体--ffmpeg编码和录像
c++·qt·开源
reasonsummer3 小时前
【办公类-115-06】20250920职称资料上传04——docx复制、docx转PDF(课程表11个)
开发语言·windows·python·c#
小糖学代码4 小时前
Linux:11.线程概念与控制
linux·服务器·c语言·开发语言·c++
Larry_Yanan7 小时前
QML学习笔记(四十)QML的ApplicationWindow和StackView
c++·笔记·qt·学习·ui