首页
社区
课程
招聘
[原创]加载内存对话框数据,
发表于: 2019-1-1 17:50 6088

[原创]加载内存对话框数据,

2019-1-1 17:50
6088
本来是准备用在项目里的,只是因为某些原因弃用了该方案,所以发出来算了
略略略略略略略略略略略略略略略 .....
效果图如下

废话不多说,直接上操作..

*.rc >> *.res >> *.obj (coff) ( 这个工序是这样的 )

所以,我们需要从obj里面提取我们想要的数据
大致解析了一下obj,
struct st_OBJ {
private:
DWORD RelCount = 0;
DWORD LineCount = 0;

public:
IMAGE_FILE_HEADER*pHeader;
IMAGE_OPTIONAL_HEADER*pOptionl;
IMAGE_SECTION_HEADER*pSec;
IMAGE_RELOCATION*pRel;
IMAGE_LINENUMBER*pLineNumber;
IMAGE_SYMBOL*pSymbol;
DWORDStringTableSize;
char*pStringTable;

st_OBJ (PCH pData) {
pHeader = (IMAGE_FILE_HEADER*)pData;
pData += sizeof (IMAGE_FILE_HEADER);

pOptionl = (IMAGE_OPTIONAL_HEADER*)pData;
pData += pHeader->SizeOfOptionalHeader;

pSec = (IMAGE_SECTION_HEADER*)pData;
pData += pHeader->NumberOfSections * sizeof (IMAGE_SECTION_HEADER);

for (size_t i = 0; i < pHeader->NumberOfSections; i++) {
RelCount += pSec[i].NumberOfRelocations;
LineCount += pSec[i].NumberOfLinenumbers;
}



pRel = (IMAGE_RELOCATION*)pData;
pData += RelCount * sizeof (IMAGE_RELOCATION);

pLineNumber = (IMAGE_LINENUMBER*)pData;
pData += LineCount * sizeof (IMAGE_LINENUMBER);

pSymbol = (IMAGE_SYMBOL*)((PCH)pHeader + pHeader->PointerToSymbolTable);// pData;
pData += pHeader->NumberOfSymbols * sizeof (IMAGE_SYMBOL);

StringTableSize = *(DWORD*)pData;
pData += sizeof (DWORD);

pStringTable = (char*)pData;

}
};
obj里面包含了不少的内容,我们只需要提取我们需要的就好了,

然后调用  DialogBoxIndirectParamA 即可实现内存加载dlg,
需要注意的是其中 保存dlg的buffer对内存属性有要求,一切都在源码里面了
/////////////// /////////////// /////////////// /////////////// /////////////// /////////////// /////////////// /////////////// /////////////// ///////////////
直接上源码,




[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 4
支持
分享
最新回复 (10)
雪    币: 7068
活跃值: (3517)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
可以,很有用。
2019-1-1 19:26
3
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
3
不错,看起来是要写网路验证?
 保存dlg的buffer动态申请是因为要4字节内存对齐

In a standard dialog box template, theDLGTEMPLATEstructure and each of theDLGITEMTEMPLATEstructures must be aligned onDWORDboundaries. The creation data array that follows aDLGITEMTEMPLATEstructure must also be aligned on aDWORDboundary. All of the other variable-length arrays in the template must be aligned on WORD boundaries.


2019-1-2 11:07
2
雪    币: 95
活跃值: (134)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
demoscene 不错,看起来是要写网路验证?&nbsp;保存dlg的buffer动态申请是因为要4字节内存对齐MSDN里有详细说明&nbsp;https://docs.microsoft.com/en ...
哦哦,原来这样啊,学习了,
2019-1-2 16:42
1
雪    币: 95
活跃值: (134)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5
isdebug 哦哦,原来这样啊,学习了,
原来是有数据结构的啊,没仔细查这个资料,苦了我还从obj里面抠
2019-1-2 16:44
0
雪    币: 30050
活跃值: (2377)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
你是蛋疼,用了十几年的API了。。。
https://www.codeproject.com/Articles/13330/Using-Dialog-Templates-to-create-an-InputBox-in-C
上传的附件:
2019-1-5 21:37
0
雪    币: 95
活跃值: (134)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
bestbird 你是蛋疼,用了十几年的API了。。。https://www.codeproject.com/Articles/13330/Using-Dialog-Templates-to-create-an-Inp ...
长见识了,小弟入行晚,很多东西没确实没见过....前辈理解下
2019-1-6 15:04
0
雪    币: 18
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
isdebug 长见识了,小弟入行晚,很多东西没确实没见过....前辈理解下
用别的东西是一回事,自己去写又是另一回事,后者能学到的东西比较多。
2019-1-10 15:17
0
雪    币: 21
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看不懂。不知道干嘛用的。
2019-1-11 14:40
0
雪    币: 3565
活跃值: (3263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
原来可以这样玩 
2021-8-22 13:31
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2021-8-22 17:49
0
游客
登录 | 注册 方可回帖
返回
//