本帖最后由 jixun66 于 2016-7-5 17:09 编辑
缺分卷的可以下我重新打包的 7z _(:3__
密码 = 用户名 + "password"
例:用户名: Jixun
密码: Jixunpassword
你的 Dll 加了 VMP 壳子不会搞;于是我利用 CE 能定位方法编译后的地址+能看出一些方法的符号的好处,稍微蒙一蒙在 OD 调了调就把关系找到了 _(:3__
[Asm] 纯文本查看 复制代码 TestWindowsFormsApplication.FormMain::loginBtn_Click
偏移 字节码 汇编
-------------------------------------------------------------------------
0 - 55 - push ebp
+1 - 8B EC - mov ebp,esp
+3 - 57 - push edi
+4 - 56 - push esi
+5 - 53 - push ebx
+6 - 8B F1 - mov esi,ecx
+8 - 8B 8E 58010000 - mov ecx,[esi+00000158]
+E - 33 D2 - xor edx,edx
+10 - 39 09 - cmp [ecx],ecx
+12 - E8 69E45E50 - call System.Windows.Forms.ni.dll+14F060
+17 - 8B 8E 48010000 - mov ecx,[esi+00000148]
+1D - 8B 01 - mov eax,[ecx]
+1F - 8B 40 4C - mov eax,[eax+4C]
+22 - FF 50 1C - call dword ptr [eax+1C] ; 读入用户名
+25 - 8B F8 - mov edi,eax ; 储存到 edi
+27 - 8B 8E 54010000 - mov ecx,[esi+00000154]
+2D - 8B 01 - mov eax,[ecx]
+2F - 8B 40 4C - mov eax,[eax+4C]
+32 - FF 50 1C - call dword ptr [eax+1C] ; 读入密码
+35 - 8B D8 - mov ebx,eax ; 储存到 ebx
+37 - 8B 15 E8225B03 - mov edx,[035B22E8] { [025D94AC] } ; L"password"
+3D - 8B CF - mov ecx,edi ; 用户名
+3F - E8 1C710652 - call System.String::Concat ; 拼接文字
+44 - 8B C8 - mov ecx,eax ; 拼接后的文字
+46 - 8B D3 - mov edx,ebx ; 密码
+48 - E8 637A0652 - call System.String::Equals ; 文字对比
+4D - 85 C0 - test eax,eax
+4F - 74 24 - je +75
+51 - FF 35 A0225B03 - push [035B22A0] { [025B1228] }
+57 - 6A 00 - push 00 { 0 }
+59 - 6A 00 - push 00 { 0 }
+5B - 6A 00 - push 00 { 0 }
+5D - 6A 00 - push 00 { 0 }
+5F - 6A 00 - push 00 { 0 }
+61 - 8B 15 EC225B03 - mov edx,[035B22EC] { [025D94CC] }
+67 - 33 C9 - xor ecx,ecx
+69 - E8 B2C65E50 - call System.Windows.Forms.ni.dll+14D300
+6E - 5B - pop ebx
+6F - 5E - pop esi
+70 - 5F - pop edi
+71 - 5D - pop ebp
+72 - C2 0400 - ret 0004 { 4 }
+75 - FF 35 A0225B03 - push [035B22A0] { [025B1228] }
+7B - 6A 00 - push 00 { 0 }
+7D - 6A 00 - push 00 { 0 }
+7F - 6A 00 - push 00 { 0 }
+81 - 6A 00 - push 00 { 0 }
+83 - 6A 00 - push 00 { 0 }
+85 - 8B 15 F0225B03 - mov edx,[035B22F0] { [025D94E4] }
+8B - 33 C9 - xor ecx,ecx
+8D - E8 8EC65E50 - call System.Windows.Forms.ni.dll+14D300
+92 - 8B 8E 58010000 - mov ecx,[esi+00000158]
+98 - BA 01000000 - mov edx,00000001 { 1 }
+9D - 39 09 - cmp [ecx],ecx
+9F - E8 DCE35E50 - call System.Windows.Forms.ni.dll+14F060
+A4 - 5B - pop ebx
+A5 - 5E - pop esi
+A6 - 5F - pop edi
+A7 - 5D - pop ebp
+A8 - C2 0400 - ret 0004 { 4 }
对 dll 的实现有点兴趣,有没有可能公开源码或稍微指点相关实现呢? |