能力值:
( LV12,RANK:330 )
51 楼
非常非常感谢NoneName兄弟再次修改myHiew(今天运气不好,附件怎么传也传不上去,明天再更新好了)
原帖:
http://bbs.pediy.com/showthread.php?s=&threadid=7600
-----------------------------------------------------------------------------------------------------------
一. 修改的BUG及增强的功能
1.启用了作者不小心禁用的mov指令中的"*"功能,并使之可以用b,w,d等操作数类型来操作数据.
2.胡乱修改了输入语句及操作指令等的缓冲区,使之足够大.
3.为避免在计算时(此时汇编指令输入窗口未弹出)继续自动输入字符,加了一个简单的bLocked标志来进行线程同步.
4.不需要再对您写的代码每行开头都加N个空格了.按下F12后,DLL会对输入的代码进行自动格式化,然后才自动输入汇编窗口.
5.第4步里同时也修正了原版HIEW中" rep movsb"中(有前缀的空格)不能正确识别的问题.
6.用户可以用前缀";"或"//"来添加表示注释的语句.
四.已知不足:
1.对@,*的处理仍然不足.
2.对跳转到后续标号的语句,可采用2次扫描技术来自动定位.但涉及到远近跳转字节数不一样的问题,打算先用NOP填充.
3.原HIEW汇编输入窗口缓冲太小.
本人没太多时间,以上BUG是在应用它改一个软件时发现的,现软件基本已经改完,也就基本不再继续改了(没时间).希望老大们再改:D
------------------------------------------------------------------------------------------------------------
NoneName修改的代码在//addby NoneName //modiby NoneName //delby NoneName 的注释之间
欢迎大家继续修改myHiew:D
能力值:
( LV2,RANK:10 )
52 楼
最初由 DonQuixote 发布 非常非常感谢NoneName兄弟再次修改myHiew(今天运气不好,附件怎么传也传不上去,明天再更新好了) 原帖:http://bbs.pediy.com/showthread.php?s=&threadid=7600 ----------------------------------------------------------------------------------------------------------- 一. 修改的BUG及增强的功能 ........
大哥在WIN98下测试F12功能正常吗?,我测试多次都不成功,现在把我在ME下测试的图片给大哥看看(OLLYDBG的图,是按F8过了那个GlobalUnlock函数的图片)
能力值:
( LV2,RANK:10 )
53 楼
强,收藏!!!
能力值:
( LV2,RANK:10 )
54 楼
强顶顶顶顶
能力值:
( LV2,RANK:10 )
55 楼
太强了!!!!!
能力值:
( LV2,RANK:10 )
56 楼
附件不能下载的吗?
能力值:
( LV12,RANK:330 )
57 楼
TO dssz:
原因知道了!
我把GlobalUnlock的返回值理解错了!
查了MSDN,其实GlobalUnlock返回FALSE当GetLastError==0时仍是成功
代码我明天改一下,应该能解决这个问题
TO Elvis:
现在的代码有点问题,我明天修改一下再下载
能力值:
( LV2,RANK:10 )
58 楼
最初由 DonQuixote 发布 TO dssz: 原因知道了! 我把GlobalUnlock的返回值理解错了! 查了MSDN,其实GlobalUnlock返回FALSE当GetLastError==0时仍是成功 代码我明天改一下,应该能解决这个问题 ........
但现在主要问题不是这个GlobalUnlock,我强跳过检测GlobalUnlock后
主要问题在: CreateThread(NULL,0,KeyInput,cliptext,NULL,NULL);
我这里创建线程失败,CreateThread返回0
为了方便说明问题,我把调试经过CreateThread后的图片放上来
能力值:
( LV12,RANK:330 )
59 楼
可能运气不太好?
再看看CreateThread的GetLastError()是多少!
当GlobalUnlock返回0时assert宏会把函数return掉,可能和这个有关系
等明天改下代码你再试试,现在要下了,没有电脑就是惨啊,只能在网吧上网
要是不小心玩过头回不了宿舍就只好露宿街头了....
能力值:
( LV12,RANK:330 )
60 楼
看到你加上的图了....
错误还是0,说明是和GlobalUnlock一样的问题,这个应该好处理,改下assert宏就行
能力值:
( LV2,RANK:10 )
61 楼
最初由 DonQuixote 发布 看到你加上的图了.... 错误还是0,说明是和GlobalUnlock一样的问题,这个应该好处理,改下assert宏就行
但CreateThread并没有执行assert的宏,是不是应该和assert的宏没有关系呢?
能力值:
( LV5,RANK:60 )
62 楼
To dssz and DonQuixote:
CreateThread的最后一个lpThreadId不要设置为空试试。
另外,Win9x下WinNT下对GUI和console集成/协调度不一样,NT系统要好一些。9x系统的console不能响应keybd_event。用PostMessage吧。创建线程前先GetForegroundWindow()。不过这样一样不知道如何用简便的方法找出所有键的扫描码值(不是ASCII码,呵呵),不知道有没有这样的函数。
睡觉先。。。明天再聊。。。
能力值:
( LV2,RANK:10 )
63 楼
最初由 NoneName 发布 To dssz and DonQuixote: CreateThread的最后一个lpThreadId不要设置为空试试。 另外,Win9x下WinNT下对GUI和console集成/协调度不一样,NT系统要好一些。9x系统的console不能响应keybd_event。用PostMessage吧。创建线程前先GetForegroundWindow()。不过这样一样不知道如何用简便的方法找出所有键的扫描码值(不是ASCII码,呵呵),不知道有没有这样的函数。 睡觉先。。。明天再聊。。。
lpThreadId我也曾经试过定义过的,但结果还是一样,我也估计问题是操作系统的问题。
但奇怪的问题是DonQuixote说他在WIN98下测试,没有问题的。
我在ME,98,下测试F12功能不成功,在XP的SP1系统下测试F12功能,一切正常。
GlobalUnlock(hMem); //因为返回0,所以去掉那个assert宏
assert(CloseClipboard());
GetForegroundWindow(); //获得前台窗口
CreateThread(NULL,0,KeyInput,cliptext,NULL,NULL);//结果还是创建线程失败
能力值:
( LV5,RANK:60 )
64 楼
最初由 dssz 发布 lpThreadId我也曾经试过定义过的,但结果还是一样,我也估计问题是操作系统的问题。 但奇怪的问题是DonQuixote说他在WIN98下测试,没有问题的。 ........
你理解错我的意思了.
现在问题已经解决,请下载.9X和NT通用.
附件:myHiew_noname.rar
能力值:
( LV2,RANK:10 )
65 楼
最初由 NoneName 发布 你理解错我的意思了. 现在问题已经解决,请下载.9X和NT通用.附件:myHiew_noname.rar
经测试,在各个系统下都正常了!!!
非常非常非常感谢NoneName的修改!!!!
**************************************************************************
对于hview这个软件,现在功能的确已经很强了,但希望有能力的兄弟继续修改一下,增加一些常用的功能,我的建议如下:
1:要是能保存F11中的标签内容,下次再修改这个文件的时候可重新载入就更方便了,不用重新再设置标签了。(这个功能就象OLLYDBG中的断点保存保存功能一样),对于需要多次修改的程序,不用每次重复写标签很方便的。
2:在标签对话框中,现在有了删除标签功能,能否增加一个手工输入标签的功能呢,也就是说 在标签对话框中输入 deflb a1==0x401000,那么就能定义一个新的标签,不用每次去到那个地址才能设置
3:程序中虽然有了VA RVA的功能,但因为我们一般DIYPE的时候,都是先增加空白代码,然后知道空白代码在文件中的OFFSET地址
然后再在要修改的地址跳到空白代码的OFFSET地址中去的。
举例如下:
地址1: offset1: 5000 va1: 402000
地址2: offset2: 8000 va2: 406000
如我想在地址1(5000)跳到地址2(8000)中,那么我在地址1(5000)处输入: jmp 8000 因为根据文件地址差,
hview中只能跳到:va1+(0ffet2-0ffset1)=402000+(8000-5000)=405000(不是我想要的406000地址)
当然根据大哥的VA JMP 406000能跳到对准确的地址中去,但能否大哥增加一下功能 输入:ofs jmp 8000就能等效jmp va2 呢?
这样我们知道文件中绝对地址以后就能马上写入跳转,不用首先把OFFSET地址转换到VA地址,再用VA JMP 了
能力值:
( LV2,RANK:10 )
66 楼
还发现一点F12功能中新问题:
ret 10
deflb command
mov eax,[ebp+10]----这行被翻译成mov eax,[ebp=10]
大哥有空再看看
能力值:
( LV2,RANK:10 )
67 楼
超强,学习ing...
能力值:
( LV12,RANK:330 )
68 楼
谢谢NoneName的修改!
好象NoneName的代码MyInputKey里没有处理Shift的问题?我在网吧测试时也是不能处理"+"号
附件怎么传也传不上来:(
能力值:
( LV2,RANK:10 )
69 楼
最初由 DonQuixote 发布 谢谢NoneName的修改! 好象NoneName的代码MyInputKey里没有处理Shift的问题?我在网吧测试时也是不能处理"+"号 附件怎么传也传不上来:(
是不是附件的格式不对啊,
附件格式:gif jpg txt zip rar 限制: 512 K
编译后的程序很大,可分包上传,或删掉一些没有用的OBJ文件试试
能力值:
( LV12,RANK:330 )
70 楼
327K的RAR 在网吧里传(非教育网)
运气太差了,传了N次都失败
昨天自行车还被小偷Crack了
能力值:
( LV2,RANK:10 )
71 楼
最初由 DonQuixote 发布 327K的RAR 在网吧里传(非教育网) 运气太差了,传了N次都失败 昨天自行车还被小偷Crack了
同感,我在大学的时候,一天里自行车被CRACK了2次。
上传的时候最好把原来的RAR删掉,不然两个RAR加起来就超过512K了
如不能上传,可把CCP的代码直接贴上来吧(暂时应急,等看雪大哥来了问问情况就知道是什么原因不能上传了。)
能力值:
( LV2,RANK:10 )
72 楼
很久没有到这么好的PEDIY文章了,感谢!!!
能力值:
( LV2,RANK:10 )
73 楼
最初由 DonQuixote 发布 327K的RAR 在网吧里传(非教育网) 运气太差了,传了N次都失败 昨天自行车还被小偷Crack了
hxxp://ezshare.de/files-en/126517/Springer.Verlag.Guide.to.Elliptic.Curve.Cryptography.eBook-kB.rar.html
这个网站可以上传单个20M的文件,而且不需要帐号,用来交流东西不错
老大如附件不能放到论坛上,可放到这个地方的
能力值:
( LV2,RANK:10 )
74 楼
希望各位老大能修复F12功能中的BUG,谢谢!!!
能力值:
( LV5,RANK:60 )
75 楼
主要是为DLL文件增加了一个输出函数KeyInput(主要是方便修改EXE文件用,为EXE增加了这个输入函数),把EXE文件中调用的检测键盘按键的函数定向到这个函数,模拟按键(没分析为什么,只是试验知道回车要模拟2次).就这么多.修改后在9x下面和2K下面应该一样快了(时间紧,没测试,不过还是为9x加了一个Sleep(100)),而且在F12后,可以自由切换窗口,不一定把它放在最前台.
下载看看吧.附件:myHiew_noname.rar
里面包含测试的代码和原版EXE,以及用FC比较2个EXE的结果.
很遗憾DonQuixote没有评上PEDIY奖:(