<< 关于VC8消息断点的几种情况 Category: 黑客技术文章 (转)开了3389无法登录的6种原因 >>
OD的万能断点插件原理    [ 2008-11-27 1:09:06 PM | Author: kyo327 | From: ]
实际上,是在ECGetText里头工作要完成时,下了个断点。
ECGetText,顾名思义就是edit control get text.
也就是在获取文本框内容时下个断点,
由于这个断点比较底层,所以被称为万能断点,

你要从一个edit框拿到文字,就要GetDlgItemText,GetWindowText,
或SendMessage(WM_GETTEXT)...
而所有这些方法,会经过ECGetText.
所以就在ECGetText下个断点.






Comments RSS Feed http://www.kyospace.com/feedcomm.asp?logID=300

Quote kyo327 Posted at 2008-11-28 1:37:49 PM
我突然发现
OD载入exe,右键->查找->所有分支,然后在任意一分支上点右键->列出switch的case
这个倒是个有用的功能:)

Quote kyo327 Posted at 2009-02-18 4:51:52 PM
Alt+F5 - 让OllyDbg总在最前面。如果被调试程序在某个断点处发生中断,而这时调试程序弹出一个总在最前面的窗口(一般为模式消息或模式对话框[modal message or dialog]),它可能会遮住OllyDbg的一部分,但是我们又不能移动最小化这个窗口。激活OllyDbg(比如按任务栏上的标签)并按Alt+ F5,OllyDbg将设置成总在最前面,会反过来遮住刚才那个窗口。如果您再按一下Alt+F5,OllyDbg会恢复到正常状态。OllyDbg是否处于总在最前面状态,将会保存,在下一次调试时依然有效。当前是否处于总在最前面状态,会显示在状态栏中。

Quote kyo327 Posted at 2009-02-24 8:24:56 PM
关于爆破程序的校验问题

可以先把流程的跳转都给改正确了 然后保存之

载入OD

然后随便在一处暴的地方 hr 下硬件访问断点

F9运行,会跑到校验的地方.然后再改跳转即可.

Quote kyo327 Posted at 2009-02-25 11:47:44 AM
2008! 右边最后一个不为0的数是:


int GetFactorNumber(unsigned Number, unsigned Factor)
{
int result = 0;
if(Factor < 2 || Number < 1)
return -1;
while(Number >= Factor)
result += Number /= Factor;
return result;
}

int GetLastDigit(unsigned Number)
{
int result = 1;/*这是连乘法的基础值,也是最后要返回的结果*/
int i;/*循环变量*/
int tmp;/*循环中用到的临时值*/
int Count = 0;/*记录找到的因子2的个数,直到和因子5的个数相等*/
int TotalFactors = GetFactorNumber(Number, 5);/*因子5的总数*/
for(i = Number; i >= 1; i--)/*从Number一直向下处理*/
{
tmp = i;
/*尽可能多的得到因子2,直到tmp是个奇数或者不需要更多的因子2*/
while(tmp % 2 == 0 && Count < TotalFactors)
{
tmp /= 2;
Count++;
}
while(tmp % 5 == 0)/*除去所有的因子5*/
tmp /= 5;
tmp %= 10;/*取得个位数*/
result *= tmp;/*做阶乘*/
result %= 10;/*只保留个位数*/
}
return result;/*返回运算结果*/
}

int main(int argc, char* argv[])
{

unsigned k=GetLastDigit(2008);

  printf("%d\n",k);
  return 0;
}


Post Comment
Topic Locked or You don't have the Permission. No Comment Allowed.
Here is kyo's blog © 2004-2005 
Processed in 0.078125 second(s)