小菜鸟想问问题..
关于E写的程序 大哥大姐们觉得跟其他软件有何不同吗
我现在就总结出几点。
1.E加壳基本无强度 pepsin RLPACK OB 还有老王壳 对E的加壳要好一点。 (来源于Hmily大哥提供)
2.E程序一般来说是可以通过字符串准确而快速的找到关键位子 (虽然其他语言编写的程序也可以通过字符串找到线索,但是无E这么好找 基本E写的在字符串参考中都可以找到有用的关键)
3.花指令多 但判断组合就2种。
基本都是sete al
call xxxx
je xxx
mov dword ptr【xxx】,eax
je xxx (来源与夜凉如水大哥的提供)
4.E语言大多的比较都是ebp+4 ebp+8 相比较 动态申请内存 E语言挂 可以这样无限杀杀杀 无论怎么vm都可以 但是E语言的Ecode段不能VM 只能VM入口 也只能防止一下脱壳
(来源与夜凉如水 Hmuly大哥的提供)
5.。关于的验证部分 00416864 8B5424 04 mov edx,dword ptr ss:[esp+4] ; XXX.00403414
00416868 8B4C24 08 mov ecx,dword ptr ss:[esp+8]
0041686C 85D2 test edx,edx
0041686E 75 0D jnz short 0041687D ; XXX.0041687D
00416870 33C0 xor eax,eax
00416872 85C9 test ecx,ecx
00416874 74 06 je short 0041687C ; XXX.0041687C
00416876 8039 00 cmp byte ptr ds:[ecx],0
00416879 74 01 je short 0041687C ;XXX.0041687C
0041687B 48 dec eax
0041687C C3 retn
0041687D 85C9 test ecx,ecx
0041687F 75 09 jnz short 0041688A ; XXX.0041688A
00416881 33C0 xor eax,eax
00416883 803A 00 cmp byte ptr ds:[edx],0
00416886 74 01 je short 00416889 ; XXX.00416889
00416888 40 inc eax
00416889 C3 retn
0041688A F7C2 03000000 test edx,3
00416890 75 37 jnz short 004168C9 ; XXX.004168C9
00416892 8B02 mov eax,dword ptr ds:[edx]
00416894 3A01 cmp al,byte ptr ds:[ecx]
00416896 75 2B jnz short 004168C3 ; XXX.004168C3
00416898 0AC0 or al,al
0041689A 74 24 je short 004168C0 ; XXX.004168C0
0041689C 3A61 01 cmp ah,byte ptr ds:[ecx+1]
0041689F 75 22 jnz short 004168C3 ; XXX.004168C3
004168A1 0AE4 or ah,ah
004168A3 74 1B je short 004168C0 ; XXX.004168C0
004168A5 C1E8 10 shr eax,10
004168A8 3A41 02 cmp al,byte ptr ds:[ecx+2]
004168AB 75 16 jnz short 004168C3 ; XXX.004168C3
004168AD 0AC0 or al,al
004168AF 74 0F je short 004168C0 ; XX.004168C0
004168B1 3A61 03 cmp ah,byte ptr ds:[ecx+3]
004168B4 75 0D jnz short 004168C3 ; XXX.004168C3
004168B6 83C1 04 add ecx,4
004168B9 83C2 04 add edx,4
004168BC 0AE4 or ah,ah
004168BE ^ 75 D2 jnz short 00416892 ; XXX.00416892
004168C0 33C0 xor eax,eax
004168C2 C3 retn
004168C3 1BC0 sbb eax,eax
004168C5 D1E0 shl eax,1
004168C7 40 inc eax
004168C8 C3 retn
004168C9 F7C2 01000000 test edx,1
004168CF 74 14 je short 004168E5 ; XXX.004168E5
004168D1 8A02 mov al,byte ptr ds:[edx]
004168D3 42 inc edx
004168D4 3A01 cmp al,byte ptr ds:[ecx]
004168D6 ^ 75 EB jnz short 004168C3 ; XXX.004168C3
004168D8 41 inc ecx
004168D9 0AC0 or al,al
004168DB ^ 74 E3 je short 004168C0 ; XXX.004168C0
004168DD F7C2 02000000 test edx,2
004168E3 ^ 74 AD je short 00416892 ; XXX.00416892
004168E5 66:8B02 mov ax,word ptr ds:[edx]
004168E8 83C2 02 add edx,2
004168EB 3A01 cmp al,byte ptr ds:[ecx]
004168ED ^ 75 D4 jnz short 004168C3 ; XXX.004168C3
004168EF 0AC0 or al,al
004168F1 ^ 74 CD je short 004168C0 ; XXX.004168C0
004168F3 3A61 01 cmp ah,byte ptr ds:[ecx+1]
004168F6 ^ 75 CB jnz short 004168C3 ; XXX.004168C3
004168F8 0AE4 or ah,ah
004168FA ^ 74 C4 je short 004168C0 ; XXX.004168C0
004168FC 83C1 02 add ecx,2
004168FF ^ EB 91 jmp short 00416892 ; XXX.00416892
00416901 85DB test ebx,ebx ; Runs.1012F460
00416903 75 03 jnz short 00416908 ; XXX.00416908
00416905 33C0 xor eax,eax
00416907 C3 retn
00416908 8BCB mov ecx,ebx ; Runs.1012F460
0041690A F7C1 03000000 test ecx,3
00416910 74 0F je short 00416921 ; XXX.00416921
00416912 8A01 mov al,byte ptr ds:[ecx]
00416914 41 inc ecx
00416915 84C0 test al,al
00416917 74 3B je short 00416954 ; XXX.00416954
00416919 F7C1 03000000 test ecx,3
0041691F ^ 75 F1 jnz short 00416912 ; XXX.00416912
00416921 8B01 mov eax,dword ptr ds:[ecx]
00416923 BA FFFEFE7E mov edx,7EFEFEFF
00416928 03D0 add edx,eax
0041692A 83F0 FF xor eax,FFFFFFFF
0041692D 33C2 xor eax,edx
0041692F 83C1 04 add ecx,4
00416932 A9 00010181 test eax,81010100
00416937 ^ 74 E8 je short 00416921 ; XXX.00416921
00416939 8B41 FC mov eax,dword ptr ds:[ecx-4]
0041693C 84C0 test al,al
0041693E 74 26 je short 00416966 ; XXX.00416966
00416940 84E4 test ah,ah
00416942 74 1C je short 00416960 ; XXX.00416960
00416944 A9 0000FF00 test eax,0FF0000
00416949 74 0F je short 0041695A ; XXX.0041695A
0041694B A9 000000FF test eax,FF000000
00416950 74 02 je short 00416954 ; XXX.00416954
00416952 ^ EB CD jmp short 00416921 ; XXX.00416921
00416954 8D41 FF lea eax,dword ptr ds:[ecx-1]
00416957 2BC3 sub eax,ebx
00416864 8B5424 04 mov edx,dword ptr ss:[esp+4] //返回值
; XXX.00403414
00416868 8B4C24 08 mov ecx,dword ptr ss:[esp+8] //正确的值 关于这些 E程序验证部分基本是很像的 也算是特点把。 (来源与夜凉如水大哥的提供)
6. 正在收集中。。
请各位大哥大姐帮帮忙 我想收集一下意见
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)