JuncoJet 发表于 2020-3-18 16:08

破解非PEID调用PEID脱壳插件ZDRx.dll

闲的蛋疼,玩玩PEID,觉得里面有个通用脱壳(然而并脱不了)不过找OEP还算方便。
把这个功能独立出来自己用,那不是呵呵哒了。


可以看出这个插件路径是这个ZDRx.dll

PEID同目录下有插件开发SDK,看一眼结构,还是很容易调用的。
Private Declare Function LoadDll Lib "ZDRx.dll" () As Long
Private Declare Function DoMyJob Lib "ZDRx.dll" (ByVal hwd As Long, ByVal name As String, ByVal res As Long, ByVal param As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDest As String, ByVal pSrc As Long, ByVal ByteLen As Long)

Private Sub Command1_Click()
    Dim b As String
    b = Space$(30)
    CopyMemory b, LoadDll, 30
    MsgBox b
End Sub

Private Sub Command2_Click()
    DoMyJob Me.hWnd, App.Path & "\" & App.EXEName & ".exe", 0, 0
End Sub

写个简单的程序,调用一下。


获取插件信息功能OK,但是插件调用提示只能提供PEID用???

使用调试器对MessageBoxA/W下断,看看运气


下断到了返回到程序领空,结构比较清晰。

向上找一下跳转,然后调试一下,发现这里是个关键跳。

nop掉跳转代码,成功弹出窗口,功能正常。

然后跳到过程头部,看到这个值,是调用参数的第三个值。

改下程序代码,第三个调用参数为0x50456944(VB里是&H50456944),一切OK。
这个值应该是相当于一个简单授权码,不同的版本,猜测可能不同,具体没深究,可能是版本信息之类的。
不过,无所谓,能用就行!

JuncoJet 发表于 2020-3-18 16:17

仔细看了下文档 0x50456944,这个值,应该是"PEiD"的字节码

bjxiaoyao 发表于 2020-3-18 18:24

感谢分享,思路清新,方法清晰,骨骼清奇,优秀!

Samourai 发表于 2020-3-18 22:32

哥们儿你的作品dpichanger可以抽空升级吗?有的图片会报错,请教何故?

JuncoJet 发表于 2020-3-18 23:05

Samourai 发表于 2020-3-18 22:32
哥们儿你的作品dpichanger可以抽空升级吗?有的图片会报错,请教何故?

只支持JPG格式的图片,你可能转了PNG之类的图会报错

Samourai 发表于 2020-3-19 00:00

本帖最后由 Samourai 于 2020-3-19 00:02 编辑

JuncoJet 发表于 2020-3-18 23:05
只支持JPG格式的图片,你可能转了PNG之类的图会报错
就是JPG格式,96转300,常常报错,兄弟能更新下么? 提示:“文件转换失败,请检查……”

pojie5201314 发表于 2020-4-27 10:52

谢谢分享!

q510 发表于 2020-4-28 23:56

一直有个疑问,通用脱壳器找到了OEP,那怎么用呢?

JuncoJet 发表于 2020-4-29 08:17

q510 发表于 2020-4-28 23:56
一直有个疑问,通用脱壳器找到了OEP,那怎么用呢?

od直接对oep地址下断点,然后转储

q510 发表于 2020-4-29 08:46

JuncoJet 发表于 2020-4-29 08:17
od直接对oep地址下断点,然后转储

下什么断点,反正我F2断点直接跑飞,所以我都只能单步或ESP
页: [1]
查看完整版本: 破解非PEID调用PEID脱壳插件ZDRx.dll