|
windbg 显示PEB is paged out怎么解决
这是个不能成为"问题"的"现象"而已。PEB位于user mode,你windbg break-in进去的时候很有可能某进程的PEB被page out了。 如果不是你要debug的进程,可以不用care。 如果是你要debug的进程,你可以用.process /i [Process],然后go,等下再断住的时候就切换到当前进程了,然后再.reload /user |
|
[原创]Windows7口令认证流程调试
了解过程很重要啊~ |
|
[原创]ProFactor IncludeManager 暴破
接下来想如何破。 1. 伪造license.bin。尚未分析证书的加密算法,仅从读取license.bin并判断证书是否有效来看,工作量不小,且算法不一定可逆。 2. 计算License ID。在界面输入ID,如果有效才能点OK 因此估计本地有验证License ID是否为有效格式的算法。这倒还好。 从这里可以看到证书文件的生成过程: 把LicenseID传到服务器,如果服务器验证通过,再通过SSL加密方式将License.bin下载到本地。假如服务器没有合法登记的LicenseID,估计就算格式有效也无法获取到LicenseID。 3. 绕过验证过程。即使证书无效,也在所有判断是否有效的地方bypass。 看起来只能采用方法3了。对于方法3,也找了很多地方,走了不少弯路。开始一直从IMVSACore.dll入手,觉得要搞的地方很多有点麻烦。退回到问题本身,又多分析了一下两个.NET DLL,总算找到了入手点。 IMVSACore.dll本身只提供验证License的功能,而本身并不会对结果进行进一步处理。可以看出,这里IncludeManager.dll调用IMVSACore!ExportGetLicenseInfo之后,把结果保存于类LicenseInfo中。 LicenseInfo类的结构: 回到IMVSACore.dll的导出函数ExportGetLicenseInfo中,用Windbg跟一下,分别断在该函数执行前及执行后: 从堆栈上找到参数指针 ExportGetLicenseInfo返回后,读取前3个参数。 从这里的调用方式我们可以看到,前3个参数分别对应 LicenseInfo.isValid == 1, LicenseInfo.isTrial == 1, LicenseInfo.daysRemaining = 0x1C 再回头看看这里: 只要isValid == 1 && isTrial == 0,就认为是注册版了。再去查看其它检查isTrial的地方,结果发现它只检查这个成员值,比如前面图里打水印的地方。 因此决定就修改这里。问题是,在哪里改好呢?两个.NET dll有strong name验证和加密,比较麻烦,思来想去最后还是回到IMVSACore.dll里去改。下ba断点,找到填输出参数的地方: isValid是这里填的: mov al, [esp+88h+var_70] mov [edx], al isTrial是这里填的: mov dl, [esp+88h+var_6F] mov [ecx], dl 我直接改掉了: 然后修正一下checksum,完工。 PS. 不足之处还望指教 PPS. 有什么同类软件更好用的麻烦推荐 |
|
[求助]找工作难
先想好你未来3,5,8年想走的路线,从起点开始努力工作。认真总有回报。 |
|
[求助]如何找到工具栏点击处理函数
以前用过一个方法,先找到弹窗的消息ID,也就是你这个ShowWindow()上层消息函数的参数。再断PostMessage(),SendMessage(),只看当前进程的,找相同的消息id,应该能找到。不过会有好多次断点hit。 不知道有没有更好的办法 |
|
[求助]有没有人有teb里边的Win32ClientInfo结构体定义
0: kd> dt tagCLIENTINFO win32k!tagCLIENTINFO +0x000 CI_flags : Uint4B +0x004 cSpins : Uint4B +0x008 dwExpWinVer : Uint4B +0x00c dwCompatFlags : Uint4B +0x010 dwCompatFlags2 : Uint4B +0x014 dwTIFlags : Uint4B +0x018 pDeskInfo : Ptr32 tagDESKTOPINFO +0x01c ulClientDelta : Uint4B +0x020 phkCurrent : Ptr32 tagHOOK +0x024 fsHooks : Uint4B +0x028 CallbackWnd : _CALLBACKWND +0x034 dwHookCurrent : Uint4B +0x038 cInDDEMLCallback : Int4B +0x03c pClientThreadInfo : Ptr32 tagCLIENTTHREADINFO +0x040 dwHookData : Uint4B +0x044 dwKeyCache : Uint4B +0x048 afKeyState : [8] UChar +0x050 dwAsyncKeyCache : Uint4B +0x054 afAsyncKeyState : [8] UChar +0x05c afAsyncKeyStateRecentDown : [8] UChar +0x064 hKL : Ptr32 HKL__ +0x068 CodePage : Uint2B +0x06a achDbcsCF : [2] UChar +0x06c msgDbcsCB : tagMSG +0x088 lpdwRegisteredClasses : Ptr32 Uint4B |
|
|
|
[求助]一段很短的汇编算法使用了MMX
编译错误是啥? AMD指令集里也有PADDQ指令的,而且功能和Intel的一样,可以参考: AMD64 Architecture Programmer's Manual Volume 5: 64-Bit Media and x87 Floating-Point Instructions |
|
|
|
[求助]找本书"Phoenix Developer's Reference"
BIOS研发技术剖析? 我说的那本是官方的spec,所以应该比较难搞到 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值