首页
社区
课程
招聘
一个解密的CALL,给他拿下来.
发表于: 2012-10-9 23:59 5844

一个解密的CALL,给他拿下来.

2012-10-9 23:59
5844
一个程序有2MB大小

里面一个CALL是一个我需要的解密CALL

例如

push 密文
call 解密
EAX返回解密后的结果

如果这个CALL只有一小段,我全ASM内嵌汇编下来就好了

但是这个CALL里有好多好多个小CALL,

于是我想到把他加到我的资源文件里,在自己的程序里CALL这个解密CALL

问题来了,比如以前里面其中一个小CALL是  CALL 00420010

但是在资源文件里,这个CALL的地址是  CALL 01506600

难道要手动一个一个改吗?

有什么好的方法?

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 225
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果是dll可以直接
hDll = loadLibrary("xxx.dll");
TPF pfn = (TPF*)(hDll + call_offset);
ret = pfn(param);

如果是exe可以CreateProcess 注入一个dll 由这个dll调用call并返回result

还有方法就是asm全扒出来
2012-10-10 11:41
0
雪    币: 403
活跃值: (546)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
dll会自动重定位基址,所以很简单,exe好像就麻烦的多吧,楼上的方法没试过,不知道是否行得通,
2012-10-10 12:31
0
雪    币: 107
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这是个EXE

2楼方法CteateProcess,也就是把目标程序启动了...

而这个程序我根本没脱壳,就是直接把整个EXE完整DUMP,不能运行,所以只能放资源里CALL

貌似确实很麻烦?一个一个修改不知道要修改哪一年
2012-10-10 15:05
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
写个小程序自动改啊,难不倒人吧。
2012-10-10 16:45
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
自己写一个DLL 塞进去,然后调解密CALL,或者把解密部分的代码全部dump下来,然后修正下,自己写个EXE把dump后映射到内存里面去。然后在调

如果解密函数代码不长的话,不涉及到密匙生成或者数据交换处理的部分,还是自己扣出来内联吧!
2012-10-10 17:03
0
雪    币: 244
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
地址可以搜二进制,找特征码来定位
2012-10-10 17:16
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
自己搜索,记得以前论坛有人放过一个IDC脚本,专门处理这种的!
2012-10-10 18:45
0
雪    币: 107
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
求指导,载入到资源估计地址会每次不一样的吧



我就是把整个程序DUMP下来了,放资源里等于是映射到内存,然后CALL,关键是 “修正下”。。。

这个解密CALL里有N个小CALL,所以不太好扒下来内嵌。。



不是那回事。。。



求衔接,我搜索了很久没搜到~~~
2012-10-11 00:06
0
游客
登录 | 注册 方可回帖
返回
//