
逆向
文章平均质量分 75
学编程的闹钟
编程资料群:387618421 可交流任何语言。
展开
-
新手逆向实战三部曲之三——通过进入关键call追码注册软件(进阶)
下图的call为用邮箱算出真正注册码,即为右上角的267527263(具体算法本次不深入研究,有兴趣的可自行尝试)有了上次爆破的基础,这次便省力了许多,这次从载入开始,虽前头的几个步骤与之前相同,温故而知新嘛(也可直接往后看)一般情况关键call就在关键跳的不远处,可见这个call应该就是我们要找的关键call了,在此处F2下断。通过前两次的学习,是不是感觉逆向也蛮有意思的呢,感兴趣的同学可以先看看前二次的内容再继续向下学习。重载程序,重复之前的注册步骤,程序断在关键call处,进入这个call。原创 2024-10-28 09:53:40 · 29112 阅读 · 0 评论 -
新手逆向实战三部曲之二——通过更改关键跳注册软件(爆破)
经过对软件的了解,本次教程采用的是下bp MessageBoxA断点的方法找关键跳,进而修改关键跳跳过失败使软件任意输入都能成功。软件已无壳,具体脱壳请移步"新手逆向实战三部曲之一",这里略去查壳脱壳。可是为什么还会失败呢,因为在jmp下面有一个跳转进来使jmp不起作用啦。由上面的分析,这个使jmp失效的跳转应该就是关键跳,于是。将上图的跳转nop掉即可,右键,二进制,用nop填充。运行程序,点击注册,输入信息后确定。软件会停在下图的位置。原创 2024-10-28 09:51:04 · 28469 阅读 · 0 评论 -
新手逆向实战三部曲之一——快速脱壳
查壳过后接着就是将有壳软件载入OD 正在上传…重新上传取消脱壳方法有很多,这里就不一一演示了1.找真正的OEP007B02D2 > 9C pushfd007B02D3 60 pushad开头的两个语句令我为之一亮,可以用搜索命令串的方法快速到达程序的OEP快捷键Ctrl+s,在命令框中输入popad回车popfd之后确定 正在上传…重新上传取消这里发现有两处,可以分别下断,经过尝试应在图示位置下断 正在上传…重新上传取消重载程序,运原创 2024-10-27 10:14:21 · 28658 阅读 · 0 评论 -
超全(OD逆向常用断点)包括多个语言,易语言也有
无法登陆自动退出者:下bp ExitProcess断下(一般可以断下)回溯代码,找按钮事件,从来来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了。无法登陆有错误提示者:下消息断点回溯代码,找按钮事件,从头来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了。原创 2024-10-27 10:11:46 · 29101 阅读 · 0 评论 -
也玩一把VMP爆破
ZF标志位在第6位,然后把结果再右移(shr)6位,就可以把ZF位移动到最低位,结果就变成了0和1,然后,再使用VMP里面的唯一一条跳转指令,VM_JUMP根据结果计算出转移地址。这里稍微注意一下,天易LOVE前辈说取出的ZF标志位是反的,可是我个人觉得取出的就是一样的,差别就在于传VM_NOR参数时EFLAGS是否取反。=========================原理分析完,开始实战搞一波==============================结果是0,EDX是EFLAGS,EAX是0x40。原创 2024-10-26 13:56:38 · 28756 阅读 · 0 评论 -
利用工具半自动修复VMP3.5壳的变异IAT
第四步:以管理员打开Imports Fixer, 进程列表中选择正在调试的进程, 点击IT&IAT, 代码区段中选择.text, OEP填写之前记下的OEP地址, 点击获取导入表, 把无效指针都去掉, 点击修正转储, 选择之前dump出来的文件, 最后dump出来的文件就已经修复完变异IAT啦, 可以把.vmp0和.vmp1区段头和数据全部删除啦。第二步:以管理员打开cmd, 执行"vmp3-import-fix-x86 -p 之前记下的进程ID"命令, 执行完命令后随便用个工具dump出来;原创 2024-03-11 10:08:08 · 29673 阅读 · 0 评论 -
新手某UPX壳脚本,脱壳+破简单网络验证+心跳处理
看旁边的注释,整个一套http请求,具体是需要什么参数或者返回什么也不清楚,从单词意思上来看,构造请求-发起请求-读取数据-关闭请求,大致是这样一个逻辑,接着就一个个拿名字到百度去搜索,全是win系统的API,微软官网都有比较好的注释。来到这里,函数很长,上下滚动看看,注意看旁边的注释,有网络请求,还有download字样,看来是一个网络验证,而且应该还下载了数据(困难2),有点超过我的预期了..1、拿到软件熟悉的右键 -- 属性,软件只有130K,感觉有点小,第一感觉是有压缩壳,果断查壳。原创 2024-10-25 09:59:10 · 29108 阅读 · 1 评论 -
手动改造UPX壳,增加IAT保护
Microsoft的IAT是整整齐齐,用一个DWORD类型的0,隔开每个对应每个DLL的IAT,而Borland就坑爹了,它的IAT是散乱的,也就是说,每个DLL对应的IAT表可能在内存分布中是不连续的。所以,脱壳的时候,修复IAT,这Borland就是急死人了,最好就是找到外壳填充IAT的地方,来Patch它得到一份完整的IAT表。思路很简单,找到壳填充IAT的地方,添加两个区块,一个放解密IAT的代码(stub),一个放我们加密IAT的代码。从壳跳到我们的区块去执行加密,然后,嘿嘿。原创 2024-10-25 09:48:00 · 29193 阅读 · 0 评论 -
winmm劫持详解
在DLLMAIN中,我们一般在DLL_PROCESS_ATTACH 中先写入我们自己要做的事情,然后在调用Load函数以及取得原始模块中的全部导出函数相应的地址,最后在DLL_PROCESS_DETACH 中调用Free函数进行释放模块。自己写的winmm时候,先执行我们要做的事情,然后把我们自己的winmm的导出函数全部跳转到系统目录下真正有用的导出函数中去,这样不会崩溃,而我们的目的也完成了,退出程序的时候,执行卸载DLL的命令,这样一个劫持程序就制作OK。//定义原始模块句柄。原创 2024-10-26 12:19:15 · 28937 阅读 · 0 评论 -
25个不同VMProtect版本合集
文件分享https://share.weiyun.com/XZfDNKyqhttps://share.weiyun.com/XZfDNKyq。是腾讯微云的下载链接,链接失效了或者有其它问题可以给我说, 都是从其它地方下载的。25个不同VMProtect版本合集。没有提取码,没有解压码。原创 2024-10-22 10:59:39 · 30412 阅读 · 0 评论 -
od和x32dbg脚本分享
是腾讯微云的下载链接,链接失效了或者有其它问题可以给我说, 都是从其它地方下载的。文件分享https://share.weiyun.com/fR6docAe。od和x32dbg脚本分享。没有提取码,没有压缩码。原创 2024-10-22 11:03:59 · 28734 阅读 · 0 评论 -
教你如何写UPX脱壳脚本
MOV cc,$RESULT //将查找的61的地址保存在cc中,注意这里查找的popad是100A0A29地址处的popad,注意我们在这个地方下硬件执行断点时候OD停不下来,那么我们就可以ret后面进行下断点2F-29=6,那么我们就在这个cc基础上加6。上面的代码就会运行到我们查找的第一个popad后面的100A0A2F处断下,代码是add edi,0x4,100A0A2F处下面再查找popad的时候就是到OEP的那个Jmp上面的Popad了!原创 2024-10-24 10:49:59 · 28709 阅读 · 0 评论 -
HOOK技术的简单使用
最初有些人对某些api函数的功能不太满意,就产生了如何修改这些api,使之更好的服务于程序的想法,这样api hook就自然而然的出现了。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。在windows系统下编程,应该会接触到api函数的使用,常用的api函数大概有2000个左右。今天随着控件,stl等高效编程技术的出现,api的使用概率在普通的用户程序上就变得越来越小了。那就意味着我可以修改程序所调用的API,完成我所需要修改的内存。原创 2024-10-24 10:42:37 · 28676 阅读 · 0 评论 -
VMProtect肤浅认知记录
之前也有人写个相关的教程说如何过掉文件校验,最简单的方法就是把输入表中的GetModuleFileNameW改成GetModuleFileNameA 这样使得VMP无法获取文件路径,接着后面CreateFileW返回的自然也就是-1,这样文件校验就可以过去了。幸运的是,vmp在进行后面两次校验之前会首先校验其对应的hash表 来保证hash表的合法性,这就给了我们机会找到这个表的位置和大小。值得注意是:在内存校验的时候,循环变量用的是表项数,也就是表的大小/0xC, 而文件校验的时候使用的是这个表的大小。原创 2024-10-23 18:15:18 · 29181 阅读 · 0 评论