首页
社区
课程
招聘
[求助]帮忙脱壳后如何把WmCode.dll直接加载内存运行
发表于: 2022-1-10 16:31 12061

[求助]帮忙脱壳后如何把WmCode.dll直接加载内存运行

2022-1-10 16:31
12061

最近用VS2019 MFC写了一个简单的辅助程序,网站的登录验证码图片比较简单(4位数字基本没有干扰),登录模块用到了完美验证码识别动态库WmCode.dll,后来想把这个动态库也作为资源集成到主程序发布成单文件就更好了。折腾了好久也没成功,发现几个问题,希望各位大佬抽空帮助解决一下:
1、原版的WmCode.dll是压缩加壳的,经PEiD 0.98 查壳为UPX0.80-1.24 Markus&Laszlo ,Exeinfo PE 0.0.3.4查壳为UPX dll->Markus & Laszlo -ver3.91,附件2的WmCode.dll为自己用UPX脱壳工具脱的,显示的是用VC6.0写的DLL,可以在程序中动态加载正常使用(但也无法直接加载内存运行)。
2、无法判断此DLL是普通的DLL还是MFC DLL,但试过多种成熟的DLL直接加载内存代码均在调用入口点函数DllMain时出错无法正常运行。
3、怀疑此DLL除压缩加壳外程序中还使用了其他的保护措施。
希望好心的大神能抽空帮我逆向研究一下,顺利的把这个动态库集成到主程序中需要的时候直接加载至内存调用(不要释放DLL到本地)。

 

我的联系方式107523562@qq.com
微信:wx24885530


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-1-10 22:33 被qxyfw编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看到两个附件分别两次下载,也不知是去用了,还是帮我研究去了
2022-1-12 14:57
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哪位大神研究出结果了,给个回音呀
2022-1-17 16:35
0
雪    币: 4506
活跃值: (4483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下载看了一下,易语言已经给出了内存加载的例子,证明是可以内存加载的.  你的内存加载代码在DllMain出有问题,证明你的代码在申请内存的时候没有设置内存执行权限 , 你可以看一下你的内存DllMain地址 是否具有PAGE_EXECUTE_READWRITE
2022-1-18 08:48
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我看了一下代码,原来申请内存设置的权限是PAGE_READWRITE,但是设置成PAGE_EXECUTE_READWRITE还是同样的异常。应该不是这个问题,入口地址是126BA5,总是在141604处抛出写内存0x00000000异常(UPX压缩过的DLL也是断在这儿),我看了下解压后的DLL文件,显示没有IAT数据,估计是IAT是原因。
2022-1-19 17:44
0
雪    币: 4506
活跃值: (4483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
qxyfw 我看了一下代码,原来申请内存设置的权限是PAGE_READWRITE,但是设置成PAGE_EXECUTE_READWRITE还是同样的异常。应该不是这个问题,入口地址是126BA5,总是在141604 ...
那是你的内存加载代码有问题.
2022-1-19 18:55
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
试了几款github上的内存加载dll的C++源码,都没有正常运行解压后的WmCode.dll。能帮我处理这个问题吗?
2022-1-19 20:31
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
用OD跟踪过WmCode.dll,0x10141604处的代码可以正常过
2022-1-19 20:34
0
雪    币: 4506
活跃值: (4483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
qxyfw 用OD跟踪过WmCode.dll,0x10141604处的代码可以正常过

你那个压缩包里面有现成的易语言可以加载的代码.  你直接翻译就行了.    自己能做的事情 

最后于 2022-1-19 23:22 被Mxixihaha编辑 ,原因:
2022-1-19 23:22
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
Mxixihaha qxyfw 用OD跟踪过WmCode.dll,0x10141604处的代码可以正常过 你那个压缩包里面有现成的易语言可以加载的代码.&n ...
下载了个易语言5.6版,代码很少也没看懂整个内存加载流程
2022-1-20 14:56
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Mxixihaha:易语言我还得从头学习,你熟悉C++的话,帮我翻译成C++代码吧。
2022-1-25 10:50
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
哪位朋友下载了附件并脱壳了WmCode.dll,发我邮箱一份吧,我自己用UPX解压后的,LoadLibrary可以加载使用,内存直接加载就不行了,用PE工具查看了一下,发现IAT为0,是这方面的问题吗?
2022-2-9 10:45
0
雪    币: 22
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我从github上下载Joachim Bauch的0.0.4版本内存加载dll代码发现一个问题,大部分时候都会抛出写异常退出,偶尔会正常加载并且成功调用导出函数,我用的dll版本是用upx解压后的(不是用其他脱壳工具脱的),还有个疑惑,我现在有WmCode.dll三种文件,原始的428k(upx3.91压缩过的)、upx解压后的1.56M左右、手动脱壳后修复不完整的1.76M左右,这三种形态的动态库在我写的程序里显式加载都可以正常使用,但是手脱后的在附带的例子程序中无法加载使用。
2022-2-14 14:44
0
雪    币: 73
活跃值: (811)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
推荐使用Enigma Virtual Box 打包
2022-2-15 12:34
1
游客
登录 | 注册 方可回帖
返回
//