首页
社区
课程
招聘
[已解决]如何获得程序运行参数?
发表于: 2008-4-3 17:17 9592

[已解决]如何获得程序运行参数?

2008-4-3 17:17
9592
有一个程序A在运行时,点击某一按钮会调用另一个程序B,注册程序在B中,但是程序B又不能独立运行(个人猜测是有某个运行参数)。同时A中又找不到可用信息,这种情况下,如何获得B的运行参数呢??

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
Process Explorer
2008-4-3 17:26
0
雪    币: 282
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,下载试验下!
2008-4-3 18:24
0
雪    币: 282
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
。。没有参数。。作为父进程的A退出后,同时B运行,不知道是否B对父进程进行检测?还是父子进程相互检测。现在情况是:将B脱壳后,用A再次调用B,无法运行。。不知道该怎么调试B
2008-4-3 19:00
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
写个dll,注入进去调用GetCommendLineA
2008-4-3 23:06
0
雪    币: 517
活跃值: (84)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
6
我觉得像这样的A调用B,想知道传递给B的参数等可以在A的CreateProcessA下断,然后单击按钮,因为A要驱动B,中断了,于是参数尽在你手。。。。
而且,反溯回去也许都能知道A在调用B前做了一些什么准备工作了。。。
2008-4-3 23:11
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
暴力搜索内存比较好,注入容易报警
2008-4-4 18:23
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
想自己写个读取进程所有内存得东东,不过无法达到OD显示memory得那个水平,不知道怎么搞。逆向OD也没看到什么东西,蛋蛋能指导一下吗
2008-4-5 11:59
0
雪    币: 82
活跃值: (526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
点确定看能不能获取启动参数
以前看游戏参数的
把这个程序替换成b程序
:)
上传的附件:
2008-4-5 18:13
0
雪    币: 282
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能够顺利获取。。。谢谢!
2008-4-6 03:05
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
上午正好有个同事问我类似的问题, “如何获得系统中其他进程的启动参数”,于是花了几分钟时间给他解决了。 忽然想到也许别人也会问这样的问题。 从google上搜,没找到答案, 并且搜到了这个日期还比较近的问题。 回答之。 编程的方法。希望对别人有点帮助。

        CHAR *P = GetCommandLine();
        char * pEvn;
        char * pAddr;
        char *pFunction;
        pFunction = (char * )GetCommandLine;
        memcpy(&pAddr, pFunction+1,sizeof(char *));
        DWORD pID=3172;//这个ID需要你用CreateToolhelp32Snapshot或者别的API得到
        //pID也可以从任务管理器的进程列表中找一个。
        DWORD dwRet;
        HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false,pID);
        ReadProcessMemory(hProcess, pAddr,&pEvn, sizeof(DWORD),&dwRet);
        char Buff[512];
        ReadProcessMemory(hProcess, pEvn, Buff, 512, &dwRet);
        CloseHandle(hProcess);
2008-4-14 16:36
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
.586
.model flat, stdcall  
option casemap :none  
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Include windows.inc
Include kernel32.inc
Include user32.inc
Includelib kernel32.lib
Includelib user32.lib

.data
OK db '请将我修改成游戏主程序,cltr+c完成复制!'
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code

start:
         
           
         invoke GetCommandLine
         invoke MessageBox,NULL,eax,addr OK,MB_OK
         invoke ExitProcess,NULL

end start
2008-4-14 18:37
0
雪    币: 142
活跃值: (121)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
delphi code
program getparame;
use
windows,sysutils;
var
mys:string;
begin
mys:=getcommandline;
messagebox(0,mys,pchar('message'),0);
end.

编译后把可执行文件改成你要获取的那个程序的名字然后运行原程序的loader就能得到程序的参数了
2008-4-14 20:37
0
雪    币: 282
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢各位!!
2008-7-24 10:18
0
游客
登录 | 注册 方可回帖
返回
//