首页
社区
课程
招聘
[旧帖] [求助]程序A不提供命令行接口,但我想在我的程序B里用A的功能.该怎么办? 0.00雪花
发表于: 2009-9-5 11:57 3847

[旧帖] [求助]程序A不提供命令行接口,但我想在我的程序B里用A的功能.该怎么办? 0.00雪花

2009-9-5 11:57
3847
程序A不提供命令行接口,但我想在我的程序B(假设是c/cpp程序)里用A的功能.该怎么办?

需求:
程序A不提供命令行接口,但我想在我的程序B里用A的功能.
A是图形化的操作界面,可以通过菜单打开某个文件F.x,点击按钮Btn来处理F.x的数据,然后通过菜单把处理结果保存为F.y文件.

我把上面这些功能简化为2个函数:
process(const string &filename)- 读取filename文件(对应上面的F.x)并处理.
saveToFile(const string & filename)-保存为filename文件(对应上面的F.y).

我现在的问题是,假设在二进制程序A中,找到了两处反汇编代码sub0,sub1,它们的功能分别对应process(),saveTofile(),
那么:
在程序B(假设是c/cpp程序),我想把F.x的文件名传给sub0,来完成数据处理; 然后把F.y.文件名传给sub1来保存.

我的问题是如何在程序B中使用sub0,sub1这两个反汇编代码?
比如说,是否需要把这两段汇编代码保存成Cracked.obj格式(可行吗?),然后让B去link Cracked.obj?
还是说直接在B中嵌入汇编代码?

或者还有什么其他办法能实现我的需求吗?

谢谢!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 62
活跃值: (112)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
注入个dll进去,在dll里调用就可以了吧。。
2009-9-6 01:28
0
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
1.能详细说说吗? 我原先没学过逆向和破解,突然要完成这个东西。

2.楼上说的注入dll的方式,程序A的窗口会弹出来吗?

3.程序A不是常驻内存的,只有用到的时候才启动,而且我只有A的exe文件,如何注入dll呢?
2009-9-9 13:36
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
值得研究,我们可以称这样的技术叫做"借尸还魂"。
我没有想过关于这样的技术能不能实现。如果想一个软件操作另一个软件的功能函数。又不可以启动这个软件。有创意。
楼主可以研究研究。
2009-9-9 13:50
0
雪    币: 45
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
下面那些假设和方法必须要用么?如果仅仅达到“在B中使用A的功能”这个目的的话,你可以把A运行起来,但是不让它显示窗口,之后连续发送那几个菜单命令,必要时更改A程序的流程(可以通过断点异常来修改EIP),然后等它处理完之后关闭它就行了。
2009-9-9 17:17
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
6
此贴不错.....很可以学习一下
http://bbs.pediy.com/showthread.php?t=97307
2009-9-11 22:18
0
游客
登录 | 注册 方可回帖
返回