首页
社区
课程
招聘
[讨论]无源二次开发,自动更新函数位置(自动更新call地址),并动态打补丁的问题。
发表于: 2020-8-10 02:42 3806

[讨论]无源二次开发,自动更新函数位置(自动更新call地址),并动态打补丁的问题。

2020-8-10 02:42
3806

最近因为有某无源码程序二次开发的需求。 目前计划最简单的方案就是 修改导入表,搞个dll 到进程。

本人菜鸟,这方面的技术不懂,但是隐隐约约似乎需要使用到辅助相关的技术。也就是需要找到主程序函数的地址,也就是所谓的找call。

因为我这边目前是想修改原来的call函数内部的代码 变成调用我自己的代码,从而达到更改call的逻辑的目标


手动找call是没啥好说的。但是我有个疑问是:

听说call的地址可能会随着操作系统不同而改变?

那么问题来了:如何 每次启动的时候,自动更新 call 地址?

参考了一些辅助方面的教程后,得知 是通过找特征码,然后每次启动扫描内存特征码来实现的,但是这种方式 我感觉效率真是感人。

所以想问一下各位大佬:

有没有别的更简单的方式 实现动态定位 call的地址?

因为二次开发的程序没有任何安全保护措施,因此完全无需考虑反挂等需求,只要能达到(动态更新call地址)目的就行。


另:我自己的dll如果获取自己的函数呢?我有源码。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-8-10 03:31 被supersoar编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 80
活跃值: (94)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
特征定位只在加载后定位一次,而且快到你感觉不到,不知道你这效率感人从何而来?
2020-8-10 10:31
0
雪    币: 573
活跃值: (227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
wate 特征定位只在加载后定位一次,而且快到你感觉不到,不知道你这效率感人从何而来?
一个函数 估计问题不大,但是几百个函数的话。那不就是要定位几百遍了。而且最重要的还是特征定位,感觉 不太靠谱。不过或许真的只能这样了?
2020-8-10 14:55
0
雪    币: 1448
活跃值: (579)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不变找变动,如果能找到更好的不变地址,就不需要特征定位
2020-8-10 15:22
0
雪    币: 3864
活跃值: (6031)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
应该是内存基址随机化ASLR, 每次启动地址虽然不一样 但是 相对偏移应该是一样的 获取启动之后的基地址 你找到的每个地址根据这个基址做固定的相对偏移,可以这样试一下 看看
2020-8-10 16:03
0
雪    币: 952
活跃值: (1951)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
supersoar 一个函数 估计问题不大,但是几百个函数的话。那不就是要定位几百遍了。而且最重要的还是特征定位,感觉 不太靠谱。不过或许真的只能这样了?
几百个也没问题, 启动时间增加不会超过几秒, 小意思
2020-8-10 16:34
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
几百个问题不大 线程一开2秒内就扫描完了 你只需要扫描特征码所在模块的代码段 很快很快的
2020-8-12 17:50
0
游客
登录 | 注册 方可回帖
返回
//