灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > 手机图文教程 > WM智能教程 >

[翻译]R4ndom破解教程全文翻译(For新手):第十六

教程来源:www.lt163.com     点击数:     更新时间:2017-11-20 20:44

最新回复 (14)    

  三蚊雞 2015-5-31 03:54    

暂时只看了第一页:
在干掉了两个病毒
建议: 在克服了两个病毒后(一个是身体的,另一个是电脑的),终于上传了最新的教程。

This is where the real learning will come in.
=> By doing the homework, critical knowledge will be gained.
=> 课后作业才是学习重点呢.

这个循环的唯一责任是从窗口接收“消息” //不是图像界面的窗口, 是 Windows OS

我们要在WinMain过程中提供一个无线循环
建议: 我们要在WinMain函数中编写一个无限循环,以及随时可以处理返回信息的回调函数。然后该循环将其接收到的消息发送给我们的回调函数,在回调函数中我们决定是否对特定的消息做处理,或只让Windows处理它。
(我认为在这里不需要强调'地址', 略感累赘)

=========
另外, 看来我需要补充一下之前提议的更动.
注意它将ARG.3拷贝到EAX和EDX。然后它对EDX完成了16位SHR(右移位)操作。然后对该值做OR操作,如果它不是0,就跳转。基本上这是在检测参数的两个高位字节是否是0(你正在读汇编语言的书,不是吗?) ,[U]是用来告诉我们资源是怎样被影响到的。[/U]
那为毛检测0 而不是1/2/3? 因为在Winuser.h中, BN_CLICKED就是零 (Button_Clicked).
在之前的附件中有以下一段劣解, 看来还是被遗忘了
//Win32.hlp: BOOL CALLBACK DialogProc( HWND hwndDlg, // handle to dialog box UINT uMsg, // message WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); //if i recall correctly: switch(uMsg) // [ARG.2] { case WM_COMMAND: switch(HIWORD(wParam)) // notification code, high 16 bits of [ARG.3] { case BN_CLICKED: // it is an enum of 0 in Winuser.h switch(LOWORD(wParam)) // identifier of the control { case BUTTON_1: // ... break; case BUTTON_2: // ... break; } break; } break; }
希望有Windows GUI 编程经验的来给给意见.

 

  killbr 2015-5-31 08:03    

沙发没有了,没有抢到…………

 

9

  QQSniper 2015-5-31 08:37    

在干掉了两个病毒
建议: 在克服了两个病毒后(一个是身体的,另一个是电脑的),终于上传了最新的教程。
回:干掉和克服这个细节没啥影响,我也考虑过克服,不过觉得克服电脑病毒有点别扭,就使用干掉这个词了。

This is where the real learning will come in.
=> By doing the homework, critical knowledge will be gained.
=> 课后作业才是学习重点呢.
回:你这一提醒,我了解了啥意思。不过我改成了“课后作业才是真正学习的地方”,应该也没啥问题。

这个循环的唯一责任是从窗口接收“消息” //不是图像界面的窗口, 是 Windows OS
回:这个是我疏忽了,没注意到,已改正。

我们要在WinMain过程中提供一个无线循环
建议: 我们要在WinMain函数中编写一个无限循环,以及随时可以处理返回信息的回调函数。然后该循环将其接收到的消息发送给我们的回调函数,在回调函数中我们决定是否对特定的消息做处理,或只让Windows处理它。
(我认为在这里不需要强调'地址', 略感累赘)
回:虽然说,说起来好像挺累赘的,不过我大概能了解作者的意思。因为在winmain中传递的确实是回调函数的地址,或者叫指针也行。作者可能想要将这个意思表达出来,他这样说确实没错,也更严谨。我认为应该保留,所以我还是坚持我的翻译。

那为毛检测0 而不是1/2/3? 因为在Winuser.h中, BN_CLICKED就是零 (Button_Clicked).
回:
这里我先引用下百度百科里的内容:

------------------来自百度百科------------------

WM_COMMAND:
窗口菜单:
LOWORD(wParam): 菜单id
HIWORD(wParam): 0
lParam: 0
如果这个消息是由子窗口控件产生,如button产生则:
LOWORD(wParam): 控件ID
HIWORD(wParam): 通知码
lParam: 子窗口句柄。
如果这个消息是由子窗口或者快捷键产生则通知码为1,由菜单产生通知码为0。
通过参数,可以区分这个消息的来源是来自于控件,快捷键还是菜单。

------------------来自百度百科------------------

上面的其实还是有点问题的,快捷键的通知码是1,子窗口或者控件的通知码则是Control-defined notification code,具体可以参考MSDN  https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms647591(v=vs.85).aspx

很显然,检测0,不是因为BN_CLICKED是0。而是因为
switch(HIWORD(wParam)) 要先判断该WM_COMMAND消息是不是控件产生的,所以是0的话就直接跳走了,如果不是0,就根据Control-defined notification code来判断是不是按钮被点击,然后 switch(LOWORD(wParam))判断是哪个按钮。

原文中的“This is
because  the upper bits of EDX tells us the ID of the resource that has been affected.”这句很明显是错的,因为是低位保存了资源的ID,用于判断哪个资源被影响到。

 

  三蚊雞 2015-5-31 20:35    
没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行