搜了下,没有关于核盾web数据的教程,这里小菜为大家献上,很简单的思路,纯适合小白,大牛飘过
昨天看到有个web爆破,我才发现核盾出了个web登录,我在这里为核盾web送上见面礼,喜欢的请大家给评个分,感觉升级好难。
下载源码看了一下,大概主要就两个子程序
1.调用webapi(网址,参数) 提交数据到网址 山寨需要用到的数据,在这里可以获取到,核盾3要素嘛,源码如下:
[ecode=1=3].版本 2
AppID = 18
SafeCode = “843007551”
CustomCode = “456”
url = “WebApi/Initialize?”
参数 = “appID=” + 到文本 (AppID) + “&safeCode=” + SafeCode + “&customCode=” + CustomCode
返回值 = 到文本 (调用WebApi (url, 到字节集 (参数)))[/ecode]
当然还有其他各种提交的数据,机器码啦版本啦等等都可以,总之就是提交的数据都要用这子程序提交,大家看下源码,我就不一一示例了
2.核盾_json.GetValue (参数) 取回数据到本地 伪造数据需要用的数据,在这里可以获取到,返回时间啊,静态数据啊,远程调用啊,源码如下:
到期时间 = 到数值 (登录后数据.GetValue (“expireTime”)) 时间
登录后数据.GetValue (“staticData”) 静态数据
[ecode=1=3].版本 2
url = “WebApi/TelnetFun”
参数 = “fun=” + fun + “?m=” + param
返回值 = 到文本 (调用WebApi (url, 到字节集 (参数)))
json.SetJSON (返回值)
json.Parser ()[/ecode]
返回 (json.GetValue (“msg”)) 远程调用
还包括什么公告,心跳之类的,总之就是返回的数据都需要从这里取回,大家也可以下载源码自己看一下
那么问题来了,知道这两个是主要子程序,我们在od中怎么去找它呢?
超简单大家都会的方法,按钮事件F8 单步 F7进call call代表跳转 调用子程序嘛,因为这俩子程序都是需要参数的,所以F7进call 55 那里就应该看到提交的参数,如果看到了,证明就是你要找的call 如果没看到,可能就是其他运算call之类的,那我们找调用webapi这个call
我们看到,在登录按钮下 会调用这个子程序,我们编译出来扔od看一下,因为有时钟 ,我就没用按钮特征码找了,直接用的虫子。
控件名称:登陆按钮→事件地址:401253
.版本 2
参数 = “userName=” + 用户帐号1.内容 + “&password=” + 登陆密码1.内容 + “&verifyCode=” + 验证码1.内容 + “&machineCode=” + 机器码
返回值 = 到文本 (调用WebApi (url, 到字节集 (参数)))
在这句话中,调用了3个子程序,到文本(),调用webapi(),到字节集(),其中只有调用webapi置入了vm代码,所以我们按钮事件下,只需要要到这个带vm代码的就是调用webapi子程序了
那我们就按钮事件下的call都下断?错了~太麻烦,我们只需要在 字符串 &machineCode= 下面再有call再下断,起码能省好多call呢,原因就是 ,很明显子程序是在这个字符串之后调用的嘛
这时候 挨个call下断,跟进去找vm代码,有的肯定就是这个子程序了
那我在第7个call中找到了vm代码
[Asm] 纯文本查看 复制代码 00401906 $ 55 PUSH EBP
00401907 . 8BEC MOV EBP, ESP
00401909 . 81EC 5C000000 SUB ESP, 0x5C
0040190F . C745 FC 00000>MOV DWORD PTR SS:[EBP-0x4], 0x0
00401916 . C745 F8 00000>MOV DWORD PTR SS:[EBP-0x8], 0x0
0040191D . C745 F4 00000>MOV DWORD PTR SS:[EBP-0xC], 0x0
00401924 . C745 F0 00000>MOV DWORD PTR SS:[EBP-0x10], 0x0
0040192B . C745 EC 00000>MOV DWORD PTR SS:[EBP-0x14], 0x0
00401932 . C745 E8 00000>MOV DWORD PTR SS:[EBP-0x18], 0x0
00401939 . C745 E4 00000>MOV DWORD PTR SS:[EBP-0x1C], 0x0
00401940 . C745 E0 00000>MOV DWORD PTR SS:[EBP-0x20], 0x0
00401947 . C745 DC 00000>MOV DWORD PTR SS:[EBP-0x24], 0x0
0040194E . C745 D8 00000>MOV DWORD PTR SS:[EBP-0x28], 0x0
00401955 . C745 D4 00000>MOV DWORD PTR SS:[EBP-0x2C], 0x0
0040195C . C745 D0 00000>MOV DWORD PTR SS:[EBP-0x30], 0x0
00401963 . C745 CC 00000>MOV DWORD PTR SS:[EBP-0x34], 0x0
0040196A . 68 08000000 PUSH 0x8
0040196F . E8 9A670000 CALL 0040810E
00401974 . 83C4 04 ADD ESP, 0x4
00401977 . 8945 C8 MOV DWORD PTR SS:[EBP-0x38], EAX
0040197A . 8BF8 MOV EDI, EAX
0040197C . BE 52FE4900 MOV ESI, 0049FE52
00401981 . AD LODS DWORD PTR DS:[ESI]
00401982 . AB STOS DWORD PTR ES:[EDI]
00401983 . AD LODS DWORD PTR DS:[ESI]
00401984 . AB STOS DWORD PTR ES:[EDI]
00401985 . EB 10 JMP SHORT 00401997
00401987 . 56 4D 50 72 6>ASCII "VMProtect begin",0
并且在堆栈窗口中找到他的两个参数
0012F700 |003C15F8 ASCII "userName=nanxun&password=xuepojie&verifyCode=&machineCode=123" 提交的参数 帐号密码验证码机器码
0012F704 |0049FE15 ASCII "WebApi/Login" 网址
因此我们确定这是webapi子程序的call ,在段首00401906 下个断点,按其他按钮试试吧,我们按注册按钮,因为注册按钮下也调用了这个子程序
在注册按钮按下,我们发现又进了这个call,没错,就是它,堆栈窗口出现:
0012F700 003697D8 ASCII "userName=nanxun&password=xuepojie&KEY=&data=&verifyCode=&machineCode=123"
0012F704 004A01F2 ASCII "WebApi/Register?"
是不是和源码一样?举一反三,退出程序重新载入,初始化的时候也调用了,那我们是不是可以获得核盾3要素了?
026AFF64 007ACBD8 ASCII "appID=18&safeCode=843007551&customCode=456"
026AFF68 004A00D2 ASCII "WebApi/Initialize?"
ID 编号自定义,3个数据都出来了,和源码中是一样的
[ecode=1=3].版本 2
AppID = 18
SafeCode = “843007551”
CustomCode = “456”
url = “WebApi/Initialize?”
参数 = “appID=” + 到文本 (AppID) + “&safeCode=” + SafeCode + “&customCode=” + CustomCode
返回值 = 到文本 (调用WebApi (url, 到字节集 (参数)))[/ecode]
当然了,不这么费劲,直接bp send也能看到这些东西。== 额,我讲的是小白思路,不调用api 就是一步一步追调用
这时候又有人冒出来说,这只能取官方示例的吧?谁家发布的时候还不加个vm壳,vm后代码看不到了怎么办?
这个我不想给你解释,头部一般是不会被vm 的,找到子程序,记录特征码,vm又何妨?
又有人要问了,数据找到了我们如何修改呢?
哈哈哈,脓个大撒子,怎么推进来的就怎么返回去找数据修改啊,段首下断,堆栈是会告诉你是从哪调用的,比如:
0261FF34 00405713 返回到 核盾验证.00405713 来自 核盾验证.00401906
返回去,往上找肯定就出现你要的数据了,如果没有呢,也许是加密解密了,你自己在call上面几句代码jmp跳到空白处补你的数据再跳回来就得了,管他加密不加密
写这么多,嫌我自己麻烦了都,为坛友留下一点小作业,也就是我的另一半没说的类模块中的GetValue咋找的呢?希望广大坛友动动手,举一反三的去找,这里我不在讲解。
看到这里是不是想骂我标题党?提交的数据取了返回的数据不讲了?
|