xhao屁孩
发表于 2022-11-13 01:16
htpidk
发表于 2022-11-13 22:56
本帖最后由 htpidk 于 2022-11-14 01:03 编辑
关键的密码对比函数
因为调用的是虚函数,静态调试不知道虚函数地址,所以用OD得到这个函数的地址
通过传参可以确定进入箭头分支
这里多点几个函数进去就能看到很多调用COM方法时的代码,所以能确定是用的某个COM组件里的方法来对比密码,其实到这里基本就能确定调用的是ScriptControl对象了
知道这些后用OD调试简单很多,下cocreateinstance断点,对照COM对象的CLSID,确定接口iunknown的地址,然后在这个接口第一个方法queryinterface下断,找到idispatch的接口地址,实际用到的IScriptControl是继承自idispatch接口的,在虚函数表里第27和29个偏移处的addcode和executestatement两个添加JS代码的方法下断,最后断在executestatement,在这个方法下断,段下后就能看到JS代码
function i(key) {
return g(key)
}
function g(_0x5d078) {
var _0x2cede8 = '%E5%8A%A0%E6%B2%B9%E5%99%A2!';
var _0x147883 = _0x5d078['split']('i');
var _0x521613 = _0x5d078['length'];
if (_0x521613 == (0x8ce98 ^ 0x8ce9e)) {//0x8ce98 ^ 0x8ce9e=6
_0x2cede8 = '%E6%81%AD%E5%96%9C%E4%BD%A0';
try {
console['log'](kk);
if (_0x147883 == '') {//_0x521613=6
_0x2cede8 = '%E6%88%90%E5%8A%9F%E4%BA%86%E4%B8%80%E5%8D%8A!';
}
} catch (_0x43299d) {
if (_0x147883['length'] > (0x8ecbc ^ 0x8ecbc) && _0x147883 == 'e') {//0xf287c ^ 0xf287d=1
_0x2cede8 = _0x2cede8 + '%E6%88%90%E5%8A%9F%E4%BA%86!';
}
}
}
return _0x2cede8;
}
这就很好明白了,首先密码长度要为6,然后密码用i分割取到数组,第二个字符要为e,所有满足这个条件的密码都可以,另外流程会触发异常进入catch里(console.log和kk未定义?),例如2iei34
ShuShuLaiLo
发表于 2022-11-13 19:51
L"0x5d078['length'];
if(_0x521613==(0x8ce98^0x8ce9e))
{
_0x2cede8='%E6%81%AD%E5%96%9C%E4%BD%A0';
try
{console['log'](kk);
if(_0x147883=='')
{_0x2cede8='%E6%88%90%E5%8A%9F%E4%BA%86%E4%B8%80%E5%8D%8A!';}}
catch(_0x43299d)
{
if(_0x147883['length']>(0x8ecbc^0x8ecbc)&&_0x147883=='e')
{_0x2cede8=_0x2cede8+'%E6%88%90%E5%8A%9F%E4%BA%86!';}
}
}
return _0x2cede8;
}"
译文:
L"0x5d078['length'];
if(_0x521613== 6 )
{
_0x2cede8='恭喜你';
try
{ console['log'](kk);
if(_0x147883=='')
{_0x2cede8='成功了一半!';}
}
catch(_0x43299d)
{
if(_0x147883['length']> 0 &&_0x147883=='e')
{_0x2cede8=_0x2cede8+'成功了!';}
}
}
return _0x2cede8;
}"
到这一步咋办呢?{:1_904:}
jdjking
发表于 2022-11-13 10:12
fateygyyan
发表于 2022-11-13 10:33
stop179
发表于 2022-11-13 10:33
温总
发表于 2022-11-13 10:47
易语言=中文版VB
weikun444
发表于 2022-11-13 11:10
只出来个恭喜你,没有成功了字样,估计是后便还有计算,无奈,不懂算法{:1_909:}
DarkLInkBrit
发表于 2022-11-13 12:11
看起来有多重判断 下载试试:handshake
liuhui12138
发表于 2022-11-13 12:12
尝试一下
lemon123654
发表于 2022-11-13 12:34
hkhkhk
发表于 2022-11-13 13:16
如何从0学习呢,有没有推荐的课程