能力值:
( LV2,RANK:10 )
|
-
-
2 楼
反编译只是看具体流程 功能需要自己分析。。。
|
能力值:
( LV7,RANK:100 )
|
-
-
3 楼
反编译出来的是伪代码……顶多看看流程
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
https://github.com/nihilus/hexrays_tools/blob/master/code/defs.h hexray F5之后的代码,编译的时候加头文件defs.h了吗?
最后于 2021-2-22 17:25
被zbzb编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
zbzb
https://github.com/nihilus/hexrays_tools/blob/master/code/defs.hhexray F5之后的代码,编译的时候加头文件defs.h了吗? 不行的啦。 而且那个defs头文件里面本身就有警告,和xx冲突。 我用vs写了一个hello world 反编译出来的东西都编不过。。。 不知道ida的人是用哪个版本的vs,我用的是2019.我也试过几个版本的defs.h, 都是这个lobyte重定义了
1>D:\code\c++\testexe\testexe\defs.h(75,1): warning C4005: 'LOBYTE': macro redefinition 1>D:\Windows Kits\10\Include\10.0.19041.0\shared\minwindef.h(206): message : see previous definition of 'LOBYTE' 1>D:\code\c++\testexe\testexe\defs.h(76,1): warning C4005: 'LOWORD': macro redefinition 1>D:\Windows Kits\10\Include\10.0.19041.0\shared\minwindef.h(204): message : see previous definition of 'LOWORD' 1>D:\code\c++\testexe\testexe\defs.h(78,1): warning C4005: 'HIBYTE': macro redefinition 1>D:\Windows Kits\10\Include\10.0.19041.0\shared\minwindef.h(207): message : see previous definition of 'HIBYTE' 1>D:\code\c++\testexe\testexe\defs.h(79,1): warning C4005: 'HIWORD': macro redefinition 1>D:\Windows Kits\10\Include\10.0.19041.0\shared\minwindef.h(205): message : see previous definition of 'HIWORD' 1>D:\code\c++\testexe\testexe\1.c(21,16): error C2143: syntax error: missing '{' before '__cdecl' 1>D:\code\c++\testexe\testexe\1.c(24,22): error C2018: unknown character '0x60' 1>D:\code\c++\testexe\testexe\1.c(24,33): warning C4229: anachronism used: modifiers on data are ignored 1>D:\code\c++\testexe\testexe\1.c(24,33): error C2061: syntax error: identifier 'namespace' 1>D:\code\c++\testexe\testexe\1.c(24,33): error C2059: syntax error: ';' 1>D:\code\c++\testexe\testexe\1.c(24,42): error C2001: newline in constant 1>D:\code\c++\testexe\testexe\1.c(24,42): error C2015: too many characters in constant 1>D:\code\c++\testexe\testexe\1.c(24,42): error C2059: syntax error: 'constant' 1>D:\code\c++\testexe\testexe\1.c(26,57): error C2146: syntax error: missing ')' before identifier 'mode' 1>D:\code\c++\testexe\testexe\1.c(26,57): error C2061: syntax error: identifier 'mode' 1>D:\code\c++\testexe\testexe\1.c(26,57): error C2059: syntax error: ';' 1>D:\code\c++\testexe\testexe\1.c(26,61): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(27,29): error C2143: syntax error: missing ')' before '*' 1>D:\code\c++\testexe\testexe\1.c(27,29): error C2143: syntax error: missing '{' before '*' 1>D:\code\c++\testexe\testexe\1.c(27,43): error C2059: syntax error: 'type' 1>D:\code\c++\testexe\testexe\1.c(27,85): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(29,29): error C2143: syntax error: missing ')' before '*' 1>D:\code\c++\testexe\testexe\1.c(29,29): error C2143: syntax error: missing '{' before '*' 1>D:\code\c++\testexe\testexe\1.c(29,43): error C2059: syntax error: 'type' 1>D:\code\c++\testexe\testexe\1.c(29,85): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(48,55): error C2143: syntax error: missing ')' before '*' 1>D:\code\c++\testexe\testexe\1.c(48,55): error C2143: syntax error: missing '{' before '*' 1>D:\code\c++\testexe\testexe\1.c(48,58): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(219,31): warning C4013: '__CheckForDebuggerJustMyCode' undefined; assuming extern returning int 1>D:\code\c++\testexe\testexe\1.c(225,29): error C2143: syntax error: missing ')' before '*' 1>D:\code\c++\testexe\testexe\1.c(225,29): error C2143: syntax error: missing '{' before '*' 1>D:\code\c++\testexe\testexe\1.c(225,43): error C2059: syntax error: 'type' 1>D:\code\c++\testexe\testexe\1.c(225,85): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(260,8): error C2065: 'FILE': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(260,11): error C2065: 'v1': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(260,8): warning C4552: '*': result of expression not used 1>D:\code\c++\testexe\testexe\1.c(265,6): error C2065: 'v1': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(265,22): warning C4013: '_acrt_iob_func' undefined; assuming extern returning int 1>D:\code\c++\testexe\testexe\1.c(266,20): warning C4013: 'sub_411393' undefined; assuming extern returning int 1>D:\code\c++\testexe\testexe\1.c(266,23): error C2065: 'v1': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(279,18): error C2065: '_crt_argv_mode': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(279,18): error C2146: syntax error: missing ';' before identifier 'v0' 1>D:\code\c++\testexe\testexe\1.c(279,20): error C2065: 'v0': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(281,6): error C2065: 'v0': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(282,34): warning C4013: 'j__configure_narrow_argv' undefined; assuming extern returning int 1>D:\code\c++\testexe\testexe\1.c(282,37): error C2065: 'v0': undeclared identifier 1>D:\code\c++\testexe\testexe\1.c(373,19): warning C4133: '=': incompatible types - from 'char *' to 'uint32 *' 1>D:\code\c++\testexe\testexe\1.c(394,19): warning C4133: '=': incompatible types - from 'char *' to 'uint32 *' 1>D:\code\c++\testexe\testexe\1.c(410,55): error C2143: syntax error: missing ')' before '*' 1>D:\code\c++\testexe\testexe\1.c(410,55): error C2143: syntax error: missing '{' before '*' 1>D:\code\c++\testexe\testexe\1.c(410,58): error C2059: syntax error: ')' 1>D:\code\c++\testexe\testexe\1.c(411,1): error C2054: expected '(' to follow 'a1' 1>D:\code\c++\testexe\testexe\1.c(414,10): error C2018: unknown character '0x60' 1>D:\code\c++\testexe\testexe\1.c(414,30): error C2001: newline in constant 1>D:\code\c++\testexe\testexe\1.c(414,30): error C2015: too many characters in constant 1>D:\code\c++\testexe\testexe\1.c(421,32): warning C4018: '<=': signed/unsigned mismatch 1>D:\code\c++\testexe\testexe\1.c(427,39): warning C4018: '>': signed/unsigned mismatch 1>Done building project "testexe.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
最后于 2021-2-22 23:37
被lolikon编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
无法编译就对了,如果反编译插件真的这么厉害,那这世上不是人人都可以做 Hexray IDA 的主人了?这天下还不早就乱套了?
最后于 2021-2-22 23:46
被老伙计编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
你不知道所有反编译出来的c代码都是不全的吗?一看你就是没有怎么接触过逆向,不知道ida以及其他的c代码有时候和汇编是对应不上的?何况还有各种无法反编译的情况。你这时候导出c导了个寂寞?
|
能力值:
( LV5,RANK:75 )
|
-
-
8 楼
如果F5那么牛逼,岂不人人都是Reverse engineer
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
不要神化F5
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我是做c++开发的,非逆向;最近研究一下逆向,确实是新手;但是我不知道你们为何如此统一的认为“反编译插件本来就做不到生成能编译的c文件”。。。
这么看来我也不用继续找其他反编译插件了,我自己研究研究吧
|
能力值:
( LV1,RANK:0 )
|
-
-
11 楼
计算机是老外发明的,好家伙,人老外这么多年都不能一键将exe完全还原成可重编译的工程,到你这你觉得你要研究多少年?
|
能力值:
( LV9,RANK:220 )
|
-
-
12 楼
头文件是cpp的,你用c去编译,当然一堆报错了。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我也想实现重新编译的功能
|