无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
18841#
发表于 2024-5-14 17:15:01 | 只看该作者
泮安宁 发表于 2024-5-14 15:55
这个是怎么用的可以举个例子吗,我这样写运行结果似乎不对
  1. ENVI^ ENVIMODE=1
  2. ENVI$# &a=*4 0
  3. ENVI-int &a=1
  4. GETF &a,0#*,&b
  5. MESS %&b%
  6. ENVI$# &d=*4 0
  7. CALL test &a &d
  8. GETF &d,0#*,&b
  9. MESS %&b%
  10. _SUB test
  11.     ENVI &c=%~1
  12.     ^GETF %~1,0#*,&b
  13.     MESS %&b%
  14.     ^ENVI-int %~1=2
  15.     ^ENVI-copy %2=%~1;0;4;0
  16. _END
复制代码


你这太绕了,不知道会不会把自己绕晕

点评

是有点绕  详情 回复 发表于 2024-5-14 17:53
回复

使用道具 举报

18842#
发表于 2024-5-14 17:53:01 | 只看该作者
红毛樱木 发表于 2024-5-14 17:15
你这太绕了,不知道会不会把自己绕晕

是有点绕
回复

使用道具 举报

18843#
发表于 2024-5-14 17:58:33 | 只看该作者
  1. ENVI &passphrase=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B 0xB0 0x42 0xF8 0xD8 0x6D 0x2E 0xF6 0xD9 0x83 0x6E 0x4E 0xFB 0xC7 0xDF 0x00 0x59 0x3A 0x99 0x4E 0x0A 0x8D 0x8B 0x2F 0x68 0xFE 0x71 0xCE 0xBB 0x8E 0xEB 0x83 0xFE 0xB9 0xA3 0xCA 0xCE 0xC6 0xEC 0xE6 0x45 0x6A 0x76 0x82 0x1C 0xE9 0xD5 0x63 0x93 0x17 0x17 0x9D 0x08 0x2A 0x15 0x44
  2. ENVI &passphrase2=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B 0xB0 0x42 0xF8 0xD8 0x6D 0x2E 0xF6 0xD9 0x83 0x6E 0x4E 0xFB 0xC7 0xDF 0x00 0x59 0x3A 0x99 0x4E 0x0A 0x8D 0x8B 0x2F 0x68 0xFE 0x71 0xCE 0xBB 0x8E 0xEB 0x83 0xFE 0xB9 0xA3 0xCA 0xCE 0xC6 0xEC 0xE6 0x45 0x6A 0x76 0x82 0x1C 0xE9 0xD5 0x63 0x93 0x17 0x17 0x9D 0x08 0x2A 0x15 0x44
  3. CALL pbkdf2
  4. _SUB pbkdf2
  5.         ENVI &&n=1
  6.         LOOP %&&n%<8000,
  7.         {*
  8.             ENVI &&byte_n=1
  9.             FORX *NL: &passphrase,&passphrase_t,
  10.             {*
  11.                 MSTR &&salt_t=<%&&byte_n%>%&passphrase2%
  12.                 CALC -base=16 &&tmp = %&passphrase_t% @ %&&salt_t%  
  13.                 CALC &&byte_n = %&&byte_n% + 1   
  14.             }
  15.             CALC &&n = %&&n% + 1
  16.         }
  17.     MESS ok
  18. _END
复制代码
这个代码怎么优化一下,运行太慢了,为了表述方便这是简化后的,在简化之前运行更慢

点评

你这 异或 运算结果 tmp, 存到那儿? 向量运算的结果也是向量 A[] = B[] op C[] 或 B[] = B[] op C[]  详情 回复 发表于 2024-5-15 12:31
你这套的LOOP干啥用的,看不明白为啥LOOP  详情 回复 发表于 2024-5-14 18:13
回复

使用道具 举报

18844#
发表于 2024-5-14 18:13:48 | 只看该作者
泮安宁 发表于 2024-5-14 17:58
这个代码怎么优化一下,运行太慢了,为了表述方便这是简化后的,在简化之前运行更慢

你这套的LOOP干啥用的,看不明白为啥LOOP

点评

根据python翻译换来的,hmac算法进行8000次迭代,解密离线系统wifi密码的一个步骤,中间调用hmac算法省略了  详情 回复 发表于 2024-5-14 18:25
回复

使用道具 举报

18845#
发表于 2024-5-14 18:25:21 | 只看该作者
红毛樱木 发表于 2024-5-14 18:13
你这套的LOOP干啥用的,看不明白为啥LOOP

根据python翻译换来的,hmac算法进行8000次迭代,解密离线系统wifi密码的一个步骤,中间调用hmac算法省略了

点评

那你这没法提速啊,硬LOOP提速个啥  详情 回复 发表于 2024-5-14 18:29
回复

使用道具 举报

18846#
发表于 2024-5-14 18:29:32 | 只看该作者
泮安宁 发表于 2024-5-14 18:25
根据python翻译换来的,hmac算法进行8000次迭代,解密离线系统wifi密码的一个步骤,中间调用hmac算法省略 ...

那你这没法提速啊,硬LOOP提速个啥

点评

[attachimg]541605[/attachimg]这两个按钮离得远,怎么让他们近一点,不然太难看了,似乎有方法吧,忘记怎么弄的了  详情 回复 发表于 2024-5-14 21:08
主要是中间异或运算又套了一层循环,还要循环64次,也就是一共要循环64×8000次。。。把中间异或运算的循环去掉了就秒出结果了 原python代码也是循环8000次,但秒出结果  详情 回复 发表于 2024-5-14 18:36
回复

使用道具 举报

18847#
发表于 2024-5-14 18:36:43 | 只看该作者
红毛樱木 发表于 2024-5-14 18:29
那你这没法提速啊,硬LOOP提速个啥

主要是中间异或运算又套了一层循环,还要循环64次,也就是一共要循环64×8000次。。。把中间异或运算的循环去掉了就秒出结果了
原python代码也是循环8000次,但秒出结果
回复

使用道具 举报

18848#
发表于 2024-5-14 20:14:38 | 只看该作者
mdyblog 发表于 2024-5-14 08:53
麻烦再测试下 05 06

呵呵0809又出了啊,马上测试

点评

还有10 10  详情 回复 发表于 2024-5-14 20:24
回复

使用道具 举报

18849#
 楼主| 发表于 2024-5-14 20:24:52 | 只看该作者
hhh333 发表于 2024-5-14 20:14
呵呵0809又出了啊,马上测试

还有10 11

点评

10/11都是正常的在win7/8下,还有不有12、13?  详情 回复 发表于 2024-5-14 20:56
V8/9在win7/8影音模式均正常启动,没有干扰。 那我又再测10,11  详情 回复 发表于 2024-5-14 20:37
回复

使用道具 举报

18850#
发表于 2024-5-14 20:37:14 | 只看该作者

V8/9在win7/8影音模式均正常启动,没有干扰。
那我又再测10,11
回复

使用道具 举报

18851#
发表于 2024-5-14 20:56:31 | 只看该作者

10/11都是正常的在win7/8下,看来已经找到引起不正常的地方了。还有不有12、13?

点评

请测试 12  详情 回复 发表于 2024-5-14 22:05
回复

使用道具 举报

18852#
发表于 2024-5-14 21:08:09 | 只看该作者
红毛樱木 发表于 2024-5-14 18:29
那你这没法提速啊,硬LOOP提速个啥

这两个按钮离得远,怎么让他们近一点,不然太难看了,似乎有方法吧,忘记怎么弄的了

点评

自己画个窗口模拟了,示例代码里好像有  详情 回复 发表于 2024-5-14 21:29
回复

使用道具 举报

18853#
发表于 2024-5-14 21:29:53 来自手机 | 只看该作者
hhh333 发表于 2024-5-14 21:08
这两个按钮离得远,怎么让他们近一点,不然太难看了,似乎有方法吧,忘记怎么弄的了

自己画个窗口模拟了,示例代码里好像有

点评

那搞复杂了  详情 回复 发表于 2024-5-14 21:56
回复

使用道具 举报

18854#
发表于 2024-5-14 21:56:48 | 只看该作者
红毛樱木 发表于 2024-5-14 21:29
自己画个窗口模拟了,示例代码里好像有

那搞复杂了
回复

使用道具 举报

18855#
 楼主| 发表于 2024-5-14 22:05:43 | 只看该作者
hhh333 发表于 2024-5-14 20:56
10/11都是正常的在win7/8下,看来已经找到引起不正常的地方了。还有不有12、13?

请测试 12

点评

正常Win7和8中均正常  详情 回复 发表于 2024-5-14 22:24
回复

使用道具 举报

18856#
发表于 2024-5-14 22:24:18 | 只看该作者

正常Win7和8中均正常

点评

太好了。 请测试 请测 13 和 0501E 0512C  详情 回复 发表于 2024-5-15 00:59
请测 13 和 0501E  详情 回复 发表于 2024-5-14 23:35
请测13  详情 回复 发表于 2024-5-14 23:18
回复

使用道具 举报

18857#
发表于 2024-5-14 23:03:15 | 只看该作者
恭喜M大出关
明天测试一下在新版本上有没有再出现以前遇到的几个小问题。
回复

使用道具 举报

18858#
 楼主| 发表于 2024-5-14 23:18:53 | 只看该作者
hhh333 发表于 2024-5-14 22:24
正常Win7和8中均正常

请测13

点评

m大增加个两个数据块按位异或的指令吧,比起每个字节去遍历在计算是不是要快点  详情 回复 发表于 2024-5-14 23:25
回复

使用道具 举报

18859#
发表于 2024-5-14 23:25:33 | 只看该作者

m大增加个两个数据块按位异或的指令吧,比起每个字节去遍历在计算是不是要快点

点评

有 CODE支持 。 就是矢量运算。  详情 回复 发表于 2024-5-14 23:32
回复

使用道具 举报

18860#
 楼主| 发表于 2024-5-14 23:32:43 | 只看该作者
泮安宁 发表于 2024-5-14 23:25
m大增加个两个数据块按位异或的指令吧,比起每个字节去遍历在计算是不是要快点

有 CODE支持 。 就是矢量运算。

点评

CODE *jm PeVar,+|-|^|#|>|.,数据或源偏移,粒度,偏移,字节数[,StepS,Loops[,StepD]] //^异或#交换>循环右移.设置&与|或?返名位[±Of]查询 Σ名累和 Π名累积 Ω名计数 粒度1/2/4/8 这个吗?没看  详情 回复 发表于 2024-5-14 23:38
回复

使用道具 举报

18861#
 楼主| 发表于 2024-5-14 23:35:51 | 只看该作者
hhh333 发表于 2024-5-14 22:24
正常Win7和8中均正常

请测 13 和 0501E  
回复

使用道具 举报

18862#
发表于 2024-5-14 23:38:28 | 只看该作者
mdyblog 发表于 2024-5-14 23:32
有 CODE支持 。 就是矢量运算。

CODE *jm   PeVar,+|-|^|#|>|.,数据或源偏移,粒度,偏移,字节数[,StepS,Loops[,StepD]]           
//^异或#交换>循环右移.设置&与|或?返名位[±Of]查询 Σ名累和 Π名累积 Ω名计数 粒度1/2/4/8

这个吗?没看明白,请m大写个例子

点评

是这个, 不知道是否合用。  详情 回复 发表于 2024-5-15 08:31
回复

使用道具 举报

18863#
 楼主| 发表于 2024-5-15 00:59:44 | 只看该作者
hhh333 发表于 2024-5-14 22:24
正常Win7和8中均正常

太好了。 请测试 请测 13 和 0501E    0512C
回复

使用道具 举报

18864#
发表于 2024-5-15 07:34:12 | 只看该作者
本帖最后由 hhh333 于 2024-5-15 07:54 编辑
mdyblog 发表于 2024-5-15 00:59
太好了。 请测试 请测 13 和 0501E    0512C

13/0501e/0512CD-q均测试通过,Win7pe。win8未测了0512与0501是两个方向吗?

点评

0501 和0512 是最后的两个版本。 0501 改完了, 就改 0512呗。  详情 回复 发表于 2024-5-15 08:09
回复

使用道具 举报

18865#
 楼主| 发表于 2024-5-15 08:09:36 | 只看该作者
hhh333 发表于 2024-5-15 07:34
13/0501e/0512CD-q均测试通过,Win7pe。win8未测了0512与0501是两个方向吗?

0501  和0512 是最后的两个版本。
0501 改完了, 就改 0512呗。
回复

使用道具 举报

18866#
 楼主| 发表于 2024-5-15 08:31:38 | 只看该作者
泮安宁 发表于 2024-5-14 23:38
CODE *jm   PeVar,+|-|^|#|>|.,数据或源偏移,粒度,偏移,字节数[,StepS,Loops[,StepD]]           
//^ ...

是这个, 不知道是否合用。

点评

在使用过程中遇到几个问题,请M大帮忙看看该怎么解决。 问题如下: 1、窗口使用缩放比例缩放后,在高DPI显示环境窗口高度超出预期(直观上是窗口右下角按钮底部的空间高度变大),具体参看帖子末尾的贴图及附件  详情 回复 发表于 2024-5-15 15:35
我没理解错的话应该是不适用 需要对 或者 进行按位异或操作,目前是挨个字节遍历,再用CALAC求异或有点慢 在pecmd内部直接实现对着两个数据的异或(指定变量名和字节数)是不是要快点,上面说的CODE没看明白咋用  详情 回复 发表于 2024-5-15 10:41
回复

使用道具 举报

18867#
发表于 2024-5-15 10:41:12 | 只看该作者
mdyblog 发表于 2024-5-15 08:31
是这个, 不知道是否合用。

我没理解错的话应该是不适用
需要对
  1. ENVI &passphrase=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B
  2. ENVI &passphrase2=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B
复制代码

或者
  1. ENVI$# &passphrase=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B
  2. ENVI$# &passphrase2=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B
复制代码
进行按位异或操作,目前是挨个字节遍历,再用CALAC求异或有点慢
在pecmd内部直接实现对着两个数据的异或(指定变量名和字节数)是不是要快点,上面说的CODE没看明白咋用





点评

可以直接用 2进制模式数组。 配合 FORX *L start step end,游标  详情 回复 发表于 2024-5-15 11:17
回复

使用道具 举报

18868#
 楼主| 发表于 2024-5-15 11:17:23 | 只看该作者
泮安宁 发表于 2024-5-15 10:41
我没理解错的话应该是不适用
需要对

可以直接用 2进制模式数组。 配合 FORX *L  start step end,游标
  1. @TEAM ENVI^ EnviMode=1| ENVI^ ForceLocal=1
  2. SET$# &passphrase=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B 0xB0 0x42 0xF8 0xD8 0x6D 0x2E 0xF6 0xD9 0x83 0x6E 0x4E 0xFB 0xC7 0xDF 0x00 0x59 0x3A 0x99 0x4E 0x0A 0x8D 0x8B 0x2F 0x68 0xFE 0x71 0xCE 0xBB 0x8E 0xEB 0x83 0xFE 0xB9 0xA3 0xCA 0xCE 0xC6 0xEC 0xE6 0x45 0x6A 0x76 0x82 0x1C 0xE9 0xD5 0x63 0x93 0x17 0x17 0x9D 0x08 0x2A 0x15 0x44
  3. SET$# &passphrase2=0x61 0xA7 0xA2 0x6F 0xAD 0x45 0xAF 0x1B 0x5B 0xB0 0x42 0xF8 0xD8 0x6D 0x2E 0xF6 0xD9 0x83 0x6E 0x4E 0xFB 0xC7 0xDF 0x00 0x59 0x3A 0x99 0x4E 0x0A 0x8D 0x8B 0x2F 0x68 0xFE 0x71 0xCE 0xBB 0x8E 0xEB 0x83 0xFE 0xB9 0xA3 0xCA 0xCE 0xC6 0xEC 0xE6 0x45 0x6A 0x76 0x82 0x1C 0xE9 0xD5 0x63 0x93 0x17 0x17 0x9D 0x08 0x2A 0x15 0x44
  4. CALL pbkdf2
  5. _SUB pbkdf2
  6.     SET &n=1
  7.     SET &byte_n=0
  8.     SET &tmp=0
  9.     FORX *L 1 1 8000,&n,   FORX *L 0 1 4,&byte_n,  ^CALC #&tmp= %%passphrase?char:%&byte_n%%% @ %%passphrase2?char:%&byte_n%%%
  10.     MESS ok
  11. _END
复制代码



回复

使用道具 举报

18869#
 楼主| 发表于 2024-5-15 12:31:54 | 只看该作者
泮安宁 发表于 2024-5-14 17:58
这个代码怎么优化一下,运行太慢了,为了表述方便这是简化后的,在简化之前运行更慢

你这 异或 运算结果 tmp, 存到那儿?
向量运算的结果也是向量
A[] = B[] op  C[]

B[] = B[] op  C[]

点评

有点混乱了,请忽略我上面的发言,上面的变量名和值与我下面说的无关重新发一下 首先&&derived的值传入HMAC函数,得到返回值[/backcolor]&&actual,[/backcolor]&&derived和[/backcolor]&&actual进行异或,结果在传  详情 回复 发表于 2024-5-15 12:57
回复

使用道具 举报

18870#
发表于 2024-5-15 12:57:36 | 只看该作者
本帖最后由 泮安宁 于 2024-5-15 13:02 编辑
mdyblog 发表于 2024-5-15 12:31
你这 异或 运算结果 tmp, 存到那儿?
向量运算的结果也是向量
A[] = B[] op  C[]

有点混乱了,请忽略我上面的发言,上面的变量名和值与我下面说的无关重新发一下
  1. ENVI &&derived=0x13 0x25 0x06 0xE9 0xAD 0x6C 0xF8 0x0B 0x80 0xBF 0x5B 0xF3 0x74 0xE0 0x11 0x06 0x06 0xEF 0x1A 0x33 0x65 0x0A 0xD8 0xB7 0x49 0x61 0x92 0x57 0x70 0xFA 0x8B 0x5E 0x8F 0x47 0x07 0x32 0x1C 0x90 0xD6 0x19 0x15 0x9C 0x74 0x14 0xD4 0xE5 0xA8 0x83 0x3E 0x05 0x05 0x65 0x46 0x1B 0x5C 0x57 0xAE 0x86 0x5F 0x5C 0x36 0x0B 0x16 0x1B
  2. LOOP %&&n%<8000,
  3.         {*
  4.             CALL HMAC "%&&passphrase%" "%&&derived%" "%&&keylen%" "%&&iterations%" "%&&digest%" &&actual
  5.             ENVI &&derived1=%&&derived%
  6.             ENVI &&derived=
  7.             ENVI &&byte_n=1
  8.             MESS %&&derived1%
  9.             FORX *NL: &&derived1,&&derived_t,
  10.             {*
  11.                 MSTR &&actual_t=<%&&byte_n%>%&&actual%
  12.                 CALC -base=16 &&tmp = %&&derived_t% @ %&&actual_t%
  13.                 IFEX '%&&derived%'='',ENVI< &&derived=%&&tmp%!ENVI< &&derived= %&&tmp%
  14.                 CALC &&byte_n = %&&byte_n% + 1
  15.             }
  16.             CALC &&n = %&&n% + 1
  17.         }
  18. _SUB HMAC
  19.         ......
  20. _END
复制代码
首先&&derived的值传入HMAC函数,得到返回值&&actual,&&derived和&&actual进行异或,结果在传入HMAC函数得到返回值&&actual与&&derived进行异或,如此循环8000次
因为数据是64字节,我把上面你发的代码改成了FORX *L 0 1 63,运行还是很慢,中间有短暂无响应阶段,但比我之前发的要快多了

点评

我分析 想了逻辑就是&derived[] = [/backcolor]derived1[] @ [/backcolor]actual[][/backcolor] [/backcolor] 应该 可以用向量运算[/backcolor] [/backcolor]  详情 回复 发表于 2024-5-15 13:51
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-1 08:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表