请教这种情况是没脱干净还是代码被混淆了
用脚本脱壳后
脱壳之后程序能正常运行
就是这个入口处多了个 call dword ptr ds:[<&kernel32.VirtualPro>; kernel32.VirtualProtect
下面的JMP跳过去就是OEP了,是delphi写的,JMP过去特征码也对的上.
IDA里 绝大部分代码都能正常识别,但有部分识别不了.
现在唯一的问题是我要逆向他的一个算法,这个算法进入一个函数后,函数内部各种无脑JMP
就像下面图这种,而且是从7XX地址到6XX地址之间来回不断的跳.
我用run trace看了下命令计次总共几十万次,最关键的一个地方也有将近2万次
我是想知道这个究竟是没脱干净,
还是混淆 或者 是加密后无法还原造成的又或是 作者自己写的保护之类?
有什么解决办法吗!
新手求各位大佬们指教,小弟跪谢了!!!!
本人小白,坐等大佬指教 加密时可以设置针对选定的函数做混淆,(VM),被 VM 的函数,脱壳之后也还是被混淆的。
ZeNiX 发表于 2022-7-20 10:27
加密时可以设置针对选定的函数做混淆,(VM),被 VM 的函数,脱壳之后也还是被混淆的。
大佬,我这种是被TMD混淆的原因吗
有办法反混淆吗.
如果确实没办法,我写脚本记录函数里关键值的变化
最后再手写还原算法是否可行呢?
{:1_932:} 7832007jwb 发表于 2022-7-20 10:44
大佬,我这种是被TMD混淆的原因吗
有办法反混淆吗.
如果确实没办法,我写脚本记录函数里关键值的变化
你可以用 Themida 或 WinLicense 加密个小程序,然后自己选几个函数加 VM。
再进去观察,就可以了解它的方式。
我不知道有什么现成的工具或脚本可以反混淆。
但是,只要肯花时间,反混淆是可能的。
问题在于值不值得。
除非算法很简单,或是很经典,能被你依照关键值变化看出来,要不然你说的方法不可行。 ZeNiX 发表于 2022-7-21 11:48
你可以用 Themida 或 WinLicense 加密个小程序,然后自己选几个函数加 VM。
再进去观察,就可以了解它的 ...
谢谢大佬.
我昨天仔细看了下,算法应该很简单,就是被混淆了执行的次数有点多
混淆后执行的函数也只有十几个,
我准备把这些函数模拟出来再慢慢手动剔除混淆的无用代码 7832007jwb 发表于 2022-7-21 11:54
谢谢大佬.
我昨天仔细看了下,算法应该很简单,就是被混淆了执行的次数有点多
混淆后执行的函数也只有十 ...
好,
加油,
祝好运。
页:
[1]